Мы извлекаем информацию из 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) Есть ли другие варианты решения моей проблемы?