Jak używać Elasticsearch Query_String

Jak używać Elasticsearch Query_String
Ciąg zapytań ElasticSearch umożliwia pobieranie dokumentów na podstawie określonego ciągu zapytania.

Query_string używa parsera o ścisłej składni. Stąd zwraca błąd, jeśli podany termin zapytania zawiera nieprawidłową składnię. To różni się od prostego ciągu zapytania.

Przyjrzyjmy się, jak możemy użyć Query_String w ElasticSearch.

Aby zrozumieć, jak korzystać z zapytania Query_String, przyjrzymy się kilku przykładom.

Przykłady użycia ElasticSearch Query_String

W tym samouczku użyjemy globalnego indeksu kibana_sample_data_flights.

Przykład 1

Załóżmy, że chcemy pobrać dokumenty, w których nazwa DestCityName jest Denver? Możemy stworzyć proste zapytanie jako:

Get /kibana_sample_data_flights /_search?q = destCityName: Denver

Przykładem jest proste zapytanie, które wyszukuje pole nazwy destCity, w którym wartością jest Denver.

Oto ilustracja przykładowego rekordów:

Możemy również zaimplementować powyższe zapytanie za pomocą parametru Query_String, jak pokazano poniżej:

Get /kibana_sample_data_flights /_search

"zapytanie":
„query_string”:
„Default_field”: „destCityName”,
„zapytanie”: „Denver”


Powyższy przykład wykonuje podobną funkcjonalność jak jeden-liner pokazany wcześniej. Jednak powyższe jest bardziej czytelne i łatwe do rozszerzenia i zastosowania filtrów.

Przykład 2

Możemy również używać operatorów logicznych, takich jak DestCityName to Denver lub Sydney.

Aby to zrobić, możemy wykonać zapytanie jako:

Get /kibana_sample_data_flights /_search

"zapytanie":
„query_string”:
„Default_field”: „destCityName”,
„Zapytanie”: „(Sydney) lub (Denver)”


W powyższym przykładzie nazwa DestCityName może być Denver lub Sydney.

Przykładowe dane wyjściowe:

Przykład 3

Załóżmy, że chcesz uzyskać dokumenty, w których czas lotu jest większy niż 10 godzin, ale mniej niż 15 godzin.

W takim przykładzie możemy użyć boolean i jak pokazano:

Get /kibana_sample_data_flights /_search

"zapytanie":
„query_string”:
„Default_field”: „FlightTimeHour”,
„zapytanie”: "(> = 10) i (<=15)"


Powstałe dokumenty obejmują:

Przykład 4

Załóżmy, że chcemy przeszukać wiele pól? Możemy przekazać pola docelowe za pomocą pól w tablicy jako:

Get /kibana_sample_data_flights /_search

"zapytanie":
„query_string”:
„Fields”: [„DestCityName”, „Destweather”],
„Zapytanie”: „Denver i deszcz”


W powyższym przykładzie szukamy dokumentów, w których nazwa DestCityName jest Denver, a Destweather to deszcz.

Możemy uzyskać przykładowe wyniki jako:

Zamknięcie

Ten przewodnik nauczył cię używać zapytania ElasticSearch Query_String, aby pobrać dokumenty pasujące do określonego ciągu zapytania.