Ми отримуємо інформацію з Elasticsearch 2.1 і дозволяємо користувачеві переглядати результати. Коли користувач запитує великий номер сторінки, ми отримуємо таке повідомлення про помилку:
Вікно результату завелике, розмір від + повинен бути меншим або рівним: [10000], але був [10020]. Див. Api прокрутки для більш ефективного способу запиту великих наборів даних. Цю межу можна встановити, змінивши параметр рівня індексу [index.max_result_window]
Еластичний документ говорить, що це пов’язано з великим споживанням пам'яті та використанням прокручуваного API:
Значення вище, ніж можуть споживати значні шматки пам'яті купи на пошук і на осколок, що виконує пошук. Найбезпечніше залишити це значення, оскільки воно використовується прокручувальним API для будь-якої глибокої прокрутки https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits
Річ у тім, що я не хочу отримувати великі набори даних. Я хочу лише отримати фрагмент із набору даних, який знаходиться дуже високо в наборі результатів. Також документ, що прокручується, говорить:
Прокрутка не призначена для запитів користувачів у режимі реального часу https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html
Це залишає у мене кілька запитань:
1) Чи справді споживання пам'яті було б меншим (будь-який, якщо так, чому), якщо я використовую прокручувальний api для прокрутки вгору до результату 10020 (і ігнорую все нижче 10000) замість того, щоб робити "звичайний" запит пошуку для результату 10000-10020?
2) Не здається, що прокручувальний API - це варіант для мене, але що я повинен збільшити "index.max_result_window". Хтось має якийсь досвід із цим?
3) Чи є інші варіанти вирішення моєї проблеми?
'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.')
Там сказано, що вона має 4719 сторінок (результати кожної сторінки 10). і я думаю, що ваша пропозиція працює.