Эластичный поиск, возвращающий тот же идентификатор прокрутки

Elastic Search возвращает один и тот же идентификатор прокрутки для каждого запроса, но состояние данных различается. Он отлично работает для разбивки на страницы.

Но мне нужно поддерживать идентификатор прокрутки в моем стеке, чтобы я мог прокручивать вверх / вниз для всех документов, а также для разбивки на страницы, по 10 документов за раз. Мне нужно избегать / уменьшать / оптимизировать память браузера, чтобы она содержала только 10 документов в соответствии с требованиями вместо всех документов.

например,

1-й запрос дает мне 10 (1-10) документов с идентификатором прокрутки scroll_id_1. Я засовываю это в свой стек.

Второй запрос дает мне следующие 10 (11-20) документов с недавним идентификатором прокрутки, то есть scroll_id_1 снова дает мне новый идентификатор прокрутки scroll_id_1. Я засовываю это в свой стек.

Теперь, если я хочу прокрутить вверх, чтобы увидеть, что предыдущие 10 (1-10) документов имеют идентификатор прокрутки, scroll_id_1 предоставит мне новые следующие 10 (21-30) документов. Вот в чем проблема, есть ли способ с этим справиться? Создание настраиваемого идентификатора прокрутки, чтобы я мог легко прокручивать вверх / вниз / в соответствии с моими требованиями.

Я читал это в официальной документации эластичного поиска, похоже, это невозможно. введите описание изображения здесь


person M Usman Wahab    schedule 12.02.2021    source источник


Ответы (1)


Во-первых, Scroll API не следует использовать для разбивки на страницы в реальном времени, он предназначен только для пакетной разбивки на страницы.

Во-вторых, Scroll API предназначен только для разбивки на страницы только вперед, нет поддержки для разбивки на страницы вперед / назад.

Вам следует изучить search_after разбиение на страницы вместо этого, который является более легким и допускает разбиение на страницы вперед и назад ... Он также позволяет сохранять состояние индекса с помощью момент времени

Также, если вы не прокручиваете дальше первых 10000 документов, _ 2 _ / _ 3_ разбиение на страницы - это все, что вам нужно

person Val    schedule 12.02.2021
comment
Удачи с этим? - person Val; 03.03.2021