So verwenden Sie Elasticsearch Query_String

So verwenden Sie Elasticsearch Query_String
Mit der Elasticsearch -Abfrage -Zeichenfolge können Sie Dokumente basierend auf einer angegebenen Abfragezeichenfolge abrufen.

Das Query_String verwendet einen Parser mit strenger Syntax. Daher wird ein Fehler zurückgegeben, wenn der angegebene Abfragebegriff eine falsche Syntax enthält. Dies unterscheidet sich von der einfachen Abfragezeichenfolge.

Sehen wir uns an, wie wir das Query_String in Elasticsearch verwenden können.

Um zu verstehen, wie Sie die Abfrage query_string verwenden, werden wir uns einige Beispiele ansehen.

Elasticsearch Query_String -Verwendungsbeispiele

In diesem Tutorial werden wir den Index von Global Kibana_Sample_Data_flight verwenden.

Beispiel 1

Angenommen, wir möchten die Dokumente abrufen, in denen der DestcityName Denver ist? Wir können eine einfache Abfrage erstellen wie:

Get /kibana_sample_data_flights /_search?q = destcityName: Denver

Das Beispiel ist eine einfache Abfrage, die das Feld DestcityName durchsucht, in dem der Wert Denver ist.

Hier ist eine Abbildung des Beispiels: Beispiele:

Wir können die obige Abfrage auch mit dem Parameter query_string implementieren, wie unten gezeigt:

Get /kibana_sample_data_flights /_search

"Anfrage":
"query_string":
"default_field": "destcityName",
"Abfrage": "Denver"


Das obige Beispiel führt eine ähnliche Funktionalität wie der zuvor gezeigte Single-Liner aus. Die oben genannte ist jedoch lesbar und einfacher zu erweitern und Filter anzuwenden.

Beispiel 2

Wir können auch Boolesche Operatoren verwenden, wie beispielsweise DestcityName entweder Denver oder Sydney ist.

Dazu können wir eine Abfrage ausführen als:

Get /kibana_sample_data_flights /_search

"Anfrage":
"query_string":
"default_field": "destcityName",
"Abfrage": "(Sydney) oder (Denver)"


Im obigen Beispiel kann der DestcityName entweder Denver oder Sydney sein.

Beispielausgabe:

Beispiel 3

Angenommen, Sie möchten die Dokumente erhalten, in denen die Flugzeit größer als 10 Stunden ist, aber weniger als 15 Stunden.

In einem solchen Beispiel können wir Boolesche und wie gezeigt verwenden:

Get /kibana_sample_data_flights /_search

"Anfrage":
"query_string":
"default_field": "flugtimeHour",
"Abfrage": "(> = 10) und ((<=15)"


Die resultierenden Dokumente umfassen:

Beispiel 4

Angenommen, wir möchten mehrere Felder durchsuchen? Wir können die Zielfelder mit den Feldern in einem Array wie folgt übergeben:

Get /kibana_sample_data_flights /_search

"Anfrage":
"query_string":
"Fields": ["DestcityName", "Destweather"],
"Abfrage": "Denver und Rain"


Im obigen Beispiel suchen wir nach Dokumenten, in denen der DestcityName Denver und Destweather regnen wird.

Wir können Beispielergebnisse erzielen als:

Schließen

Diese Anleitung hat Sie beigebracht, die Elasticsearch Query_String -Abfrage zu verwenden, um Dokumente abzurufen, die mit einer bestimmten Abfragezeichenfolge übereinstimmen.