#elasticsearch #elasticsearch-6 #elasticsearch-7 #resthighlevelclient
#elasticsearch #elasticsearch-6 #elasticsearch-7 #resthighlevelclient
Вопрос:
Мы используем ES версии 6.4 и хотим обновиться до версии 7.4. При тестировании повышения градации для выполнения поиска по страницам с использованием прокрутки мы сталкиваемся с проблемой, приведенной ниже:
Попытка создать слишком много контекстов прокрутки. Должно быть меньше или равно [500]. Это ограничение можно установить, изменив параметр [search.max_open_scroll_context] .
Похоже, мы можем открыть только 500 контекстов прокрутки.
Когда мы инициируем прокрутку, создается контекст прокрутки (context A), и идентификатор прокрутки указывает на контекст (context A). Когда я извлекаю следующий пакет, создается новый контекст прокрутки (контекст B). Я получаю тот же идентификатор прокрутки (теперь он указывает на контекст B). Что происходит со старым контекстом прокрутки (контекст A). Будет ли он закрыт и собран немедленно? Или произойдет только по истечении времени прокрутки? Как я могу очистить старый контекст прокрутки? Идентификатор прокрутки, связанный со старым контекстом (контекст A), теперь указывает на новый контекст (контекст B).
Как нам обойти эту проблему?
Наши варианты:
- Мы можем увеличить контекст прокрутки в настройках. Есть ли какие-либо проблемы, если мы увеличим контексты прокрутки до большего числа (например, 10000)
- Очистите контексты прокрутки после его использования. Мы наблюдали, что тот же идентификатор прокрутки возвращается для извлечения последующих пакетов. Как нам очистить контекст прокрутки, который был создан для более старого пакета?
Ответ №1:
Возможно, было бы лучше использовать Search after вместо Scroll API, поскольку Scroll API больше не рекомендуется ES для глубокой разбивки на страницы (ES 7.x). вы можете найти больше информации на странице документации ElasticSearch: https://www.elastic.co/guide/en/elasticsearch/reference/7.x/scroll-api.html
Комментарии:
1. Спасибо @Kaveh, нам нужно будет изучить