Zum Testen und Analysieren Ihrer Anfragen Sie können Slow Log verwenden, mit dem Abfrage- und Abrufphasen in einer Protokolldatei protokolliert werden können. Es ist in hohem Grade konfigurierbar - Sie können definieren, was es "langsame Abfrage" für jeden Index bedeutet.
Einfaches Beispiel für Index mit dem Namen „Probe“ (für Testzwecke wird es mit der Zeit auf „0“ gesetzt wird Anmeldung - Sie Ihre eigene Schwelle einstellen):
zuerst den Index in der Nähe:
curl -X POST http://127.0.0.1:9200/sample/_close
dann das langsame Log konfigurieren:
curl -X PUT \
'http://127.0.0.1:9200/sample/_settings?preserve_existing=true' \
-d '{
"index.indexing.slowlog.threshold.index.debug" : "0s",
"index.search.slowlog.threshold.fetch.debug" : "0s",
"index.search.slowlog.threshold.query.debug" : "0s"
}'
Öffnen Sie den Index:
curl -X POST http://127.0.0.1:9200/sample/_open
Nachdem die kürzere Abfrage ausführen Sie in Ihrem Beitrag zur Verfügung gestellt (ich habe 5 Scherben bekommt und die Abfrage für jede von ihnen ausgeführt wird):
[index.search.slowlog.query] [sample][1] took[594.1micros], ..., source[{"query":{"term":{"price":{"value":33,"boost":1.0}}}}],
[index.search.slowlog.query] [sample][3] took[649.4micros], ..., source[{"query":{"term":{"price":{"value":33,"boost":1.0}}}}],
[index.search.slowlog.query] [sample][4] took[575.6micros], ..., source[{"query":{"term":{"price":{"value":33,"boost":1.0}}}}],
[index.search.slowlog.query] [sample][2] took[1.2ms], ..., source[{"query":{"term":{"price":{"value":33,"boost":1.0}}}}],
[index.search.slowlog.query] [sample][0] took[4.3ms], ..., source[{"query":{"term":{"price":{"value":33,"boost":1.0}}}}],
...
Nach der längeren Abfrage ausführen Sie in Ihrem Beitrag zur Verfügung gestellt:
[index.search.slowlog.query] [sample][1] took[13.2ms], ..., source[{"query":{"constant_score":{"filter":{"term":{"price":{"value":33,"boost":1.0}}},"boost":1.0}}}],
[index.search.slowlog.query] [sample][4] took[13.2ms], ..., source[{"query":{"constant_score":{"filter":{"term":{"price":{"value":33,"boost":1.0}}},"boost":1.0}}}],
[index.search.slowlog.query] [sample][3] took[14.7ms], ..., source[{"query":{"constant_score":{"filter":{"term":{"price":{"value":33,"boost":1.0}}},"boost":1.0}}}],
[index.search.slowlog.query] [sample][2] took[15.5ms], ..., source[{"query":{"constant_score":{"filter":{"term":{"price":{"value":33,"boost":1.0}}},"boost":1.0}}}],
[index.search.slowlog.query] [sample][0] took[15.5ms], ..., source[{"query":{"constant_score":{"filter":{"term":{"price":{"value":33,"boost":1.0}}},"boost":1.0}}}],
...
Natürlich ist dies nur ein einziger Versuch, aber es kann für tiefere Tests und Analysen sehr nützlich sein.