Pobieramy informacje z Elasticsearch 2.1 i pozwalamy użytkownikowi przeglądać wyniki. Gdy użytkownik zażąda wysokiego numeru strony, otrzymamy następujący komunikat o błędzie:
Okno wyników jest zbyt duże, rozmiar od + musi być mniejszy lub równy: [10000], ale był [10020]. Zobacz przewijany interfejs API, aby uzyskać bardziej efektywny sposób żądania dużych zestawów danych. Limit ten można ustawić, zmieniając parametr poziomu indeksu [index.max_result_window]
Elastyczna dokumentacja mówi, że dzieje się tak z powodu dużego zużycia pamięci i korzystania z przewijanego interfejsu API:
Wartości wyższe niż mogą zużywać znaczące fragmenty pamięci sterty na wyszukiwanie i na fragment wykonujący wyszukiwanie. Najbezpieczniej jest pozostawić tę wartość, ponieważ jest to użycie interfejsu API przewijania do dowolnego głębokiego przewijania https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits
Chodzi o to, że nie chcę pobierać dużych zestawów danych. Chcę tylko pobrać wycinek ze zbioru danych, który jest bardzo wysoko w zestawie wyników. Również przewijany dokument mówi:
Przewijanie nie jest przeznaczone dla żądań użytkowników w czasie rzeczywistym https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html
Pozostaje mi kilka pytań:
1) Czy zużycie pamięci byłoby naprawdę niższe (jeśli tak, dlaczego), gdybym użyłby przewijanego interfejsu API do przewijania w górę do wyniku 10020 (i zignorował wszystko poniżej 10000) zamiast wykonywać „normalne” żądanie wyszukiwania wyniku 10000-10020?
2) Nie wygląda na to, że scrolling API jest dla mnie opcją, ale muszę zwiększyć "index.max_result_window". Czy ktoś ma z tym jakieś doświadczenie?
3) Czy są jakieś inne możliwości rozwiązania mojego problemu?
'Result window is too large, from + size must be less than or equal to: [10000] but was [47190]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level parameter.')
Mówi się, że ma 4719 stron (każda strona 10 wyników). i myślę, że twoja sugestia działa.