Как прокрутка в elasticsearch обрабатывает постоянное обновление данных?

Вот пример переиндексации. Но что, если поле date обновляется во время переиндексации? И после нескольких запросов на прокрутку мне нужно установить интервал даты от date до now. Как прокрутка elasticsearch справляется с этой ситуацией: он просто прокручивает документы со старым значением date или прокручивает вечно, пока не закончатся запросы на обновление?


person Cherry    schedule 10.05.2015    source источник


Ответы (1)


Принцип работы API сканирования и прокрутки описан через одну ссылку от вашей ссылки, т. е. по адресу http://www.elastic.co/guide/en/elasticsearch/guide/master/scan-scroll.html

На этой странице указано, что

Поиск с прокруткой делает снимок во времени  — он не видит никаких изменений, внесенных в индекс после того, как был сделан первоначальный поисковый запрос. Он делает это, сохраняя старые файлы данных, чтобы сохранить свое «представление» о том, как выглядел индекс в момент его запуска.

Таким образом, это означает, что независимо от того, используете ли вы конкретную дату для даты окончания или просто now, это не будет иметь никакого значения, поскольку моментальный снимок документов, учитываемых вашим запросом прокрутки, всегда будет постоянным в течение всего времени выполнения запроса. .

Допустим, вы отправляете запрос прокрутки прямо сейчас (например, 2015-05-11 06:22:27), тогда никакие новые документы, внесенные в ваш индекс после этой даты, никогда не будут возвращены.

person Val    schedule 11.05.2015