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.