W tym samouczku dowiemy się, jak pogadać wyniki w elasticsearch przy użyciu interfejsów API paginacji.
Poniższy zrzut ekranu pokazuje, w jaki sposób możesz zaimplementować paginację fr elasticsearch do aplikacji front-end.
W ElasticSearch istnieją trzy główne sposoby przeprowadzenia paginacji. Każda metoda ma swoje zalety i wady. Dlatego konieczne jest rozważenie struktury danych przechowywanych w twoim indeksie.
W tym przewodniku dowiemy się, jak paginizować przy użyciu trzech głównych metod. Mianowicie:
Z paginacji i wielkości
Po złożeniu wniosku o wyszukiwanie w ElasticSearch otrzymasz 10 najlepszych trafień w dopasowanym zapytaniu. Jeśli masz zapytanie, które zwraca więcej dokumentów, możesz użyć parametrów z i rozmiaru.
Parametr z from służy do zdefiniowania liczby rekordów do pominięcia przed wyświetleniem poprzednich dokumentów. Pomyśl o tym jako o indeksie, w którym ElasticSearch zaczyna pokazywać wyniki.
Parametr rozmiaru opisuje maksymalną liczbę rekordów, które zwróci zapytanie wyszukiwania.
Parametry z i wielkości mają bardzo obowiązujące, gdy chcesz utworzyć wyniki pagne.
Rozważ pytanie poniżej, które ilustruje, jak korzystać z parametrów z i rozmiaru:
Get /kibana_sample_data_flights /_search
„From”: 0,
„Rozmiar”: 5,
"zapytanie":
"mecz":
„DestCityName”: „Denver”
W powyższym zapytaniu przeszukujemy dokumenty pasujące do określonych kryteriów. Następnie używamy parametrów z i rozmiaru, aby określić, ile rekordów wyświetli zapytanie.
W naszym przykładzie zaczynamy od pierwszych dopasowanych dokumentów. I.mi., Zaczynamy od indeksu 0.
Określamy również maksymalną liczbę dokumentów do wyświetlenia do 5.
Wyniki zapytania są następujące:
Jak widać z powyższej odpowiedzi, mamy siedem całkowitych trafień. Ograniczamy jednak maksymalne dokumenty, które można pokazać jako 5.
Aby wyświetlić dwa ostatnie dokumenty, możemy ustawić wartość na 5 jako:
Get /kibana_sample_data_flights /_search
„From”: 5,
„Rozmiar”: 5,
"zapytanie":
"mecz":
„DestCityName”: „Denver”
Paginacja przewijania
Kolejnym rodzajem paginacji w Elasticsearch jest Pagination Scroll. Wymaga unikalnego scroll_id, który określa liczbę dokumentów do wyświetlenia i czas trwania kontekstu wyszukiwania.
Rozważ dokumentację, aby dowiedzieć się więcej o kontekście wyszukiwania.
Aby wygenerować scroll_id, zrób żądanie, jak pokazano poniżej:
Get /kibana_sample_data_flights /_search?Scroll = 1m
„Rozmiar”: 20,
"zapytanie":
"mecz":
„DestCityName”: „Denver”
Powyższe zapytanie powinno zwrócić wyniki, w tym scroll_id, jak pokazano:
Parametr Scroll w zapytaniu informuje ElasticSearch, aby użył 1 minuty jako czasu trwania kontekstu wyszukiwania.
Aby użyć interfejsu API Scroll i wyświetl następującą partię 20 wyników, użyj Scroll_ID, jak pokazano:
Get /_search /Scroll
„Scroll”: „1m”,
„Scroll_id”:
„Fgluy2x1zgvfy29udgv4df91dwlkdxf1zxj5qw5krmv0y2gbfml5z0hnx3qzvhfhtlbnu
lrlz0rveeaaaaaAbdzqundsq1zsrfjddxdtujmwvv9oyu5r ""
Zapytanie powinno zwrócić następną partię dokumentów pasujących do określonego zapytania.
Aby wyczyścić zwój, użyj żądania usuwania jako:
Usuń /_search /przewijanie
„scroll_id”: "
Żądanie powinno usunąć zwój określony przez identyfikator. Warto zauważyć, że kontekst wyszukiwania jest usuwany automatycznie, gdy wygasa ustawiona czas trwania.
Szukaj po paginacji
Drugą metodą paginacji w ElasticSearch jest wyszukiwanie. Ideą Search_after jest pobieranie wartości po wartości sortowania.
Weźmy prosty przykład. Załóżmy, że chcemy zobaczyć dokumenty DestCityName = Denver i sortowanie na podstawie ceny biletu.
Get /kibana_sample_data_flights /_search
„Rozmiar”: 2,
"zapytanie":
"mecz":
„DestCityName”: „Denver”
, „Sort”: [
„AvgticketPrice”:
„Zamów”: „DESC”
]
Jeśli uruchomimy powyższe zapytanie, powinniśmy zobaczyć tylko dwa z całkowitych trafień, jak określono w parametrze wielkości.
Zapewni nam również wartość sortowania dla każdego dokumentu, jak pokazano:
Możemy użyć tej wartości sortowania, aby pobrać następną partię dokumentów jako:
Get /kibana_sample_data_flights /_search
„Rozmiar”: 2,
"zapytanie":
"mecz":
„DestCityName”: „Denver”
,
„Search_after”: [940.3963]
, „Sort”: [
„AvgticketPrice”:
„Zamów”: „DESC”
]
Następnie używamy parametru Search_After i identyfikatora sortowania w ostatnim żądaniu, aby wyświetlić następną partię dokumentów.
Zamknięcie
Ten przewodnik zawiera podstawy paginujących wyników w elasticsearch za pomocą paginacji i rozmiaru Pagination i Search_After. Rozważ dokumentację do zbadania.