W tym krótkim przewodniku przyjrzymy się, jak sortować wyniki zapytania w elasticsearch.
Podstawowe użycie
Możesz sortować wyniki za pomocą metody jednej linii w zapytaniu. Na przykład:
Get /kibana_sample_data_flights /_search?Q= DestCityName: denver & sort = avgticketpriceW powyższym przykładzie zapytaniu pobieramy wszystkie dokumenty, w których pola destCityName jest równa Denverowi, a następnie sortuje wyniki ceny AVGTicket.
Powstałe zapytanie powinno zawierać dokumenty, w których miasto jest Denver, z ceną biletów posortowanymi w kolejności rosnącej.
Przykładowe dane wyjściowe to jak pokazano:
Chociaż metoda jednowierszowa może być pomocna, gdy trzeba wykonać szybki sort, nie jest ona bardzo czytelna i może się skomplikować, gdy trzeba sortować wiele pól.
Aby to rozwiązać, możesz użyć zalecanej metody zapytań elasticsearch. Na przykład możemy napisać powyższe zapytanie jako:
Get /kibana_sample_data_flights /_searchTo zapytanie działa podobnie do metody jednowierszowej pokazanej powyżej. Jest jednak bardziej opisowy i jest bardziej czytelny.
Sortuj według zamówienia rosnącego
Aby zmienić kolejność odwrotną, możesz zmienić kolejność z ASC na DESC, co sortuje wartości od najwyższych na najniższe, jak pokazano:
Get /kibana_sample_data_flights /_searchPrzykładowe dane wyjściowe jest takie, jak pokazano:
Sortowanie odległości Geo
ElasticSearch umożliwia sortowanie według geoinformacji za pomocą parametru _GEO_Distance. Rozważmy na przykład następujące zapytanie:
Get /kibana_sample_data_flights /_searchPowyższe zapytanie powinno zwrócić zapisy, w których kraj docelowy jest równy USA, a lokalizacja znajduje się w określonym zakresie szerokości i długości geograficznej.
Sortuj według typu tekstu
Sortowanie nie ogranicza się do wartości numerycznych, sortuj tekst jako:
Get /kibana_sample_data_flights /_searchWniosek
W tym samouczku omówiliśmy, jak sortować wyniki z zapytania ElasticSearch za pomocą słowa kluczowego sortowania. Sprawdź dokumentację, aby dowiedzieć się więcej.