В OpenSearch концепция скрола возникает при наличии большого набора результатов поиска. Большие результаты поиска являются исчерпывающими как для кластера OpenSearch, так и для запрашивающего клиента с точки зрения памяти и обработки. Scroll API позволяет сделать снимок большого количества результатов из одного поискового запроса.
Примеры
Чтобы выполнить поиск с прокруткой, необходимо добавить параметр scroll в поисковый запрос и указать, как долго OpenSearch должен сохранять поисковый контекст жизнеспособным.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | GET mydocs-2023/_search?scroll=40s { "size": 5000, "query": { "match_all": {} }, "sort": [ { "_doc": { "order": "asc" } } ] } |
Этот запрос вернет максимум 5000 совпадений. Если Scroll запрос простаивает более 40 секунд, он будет удален. В ответ будет возвращена первая страница результатов и идентификатор свитка. Идентификатор свитка можно использовать для получения дополнительных документов из свитка. Вы сможете продолжать получать документы до тех пор, пока не получите их все.
Примечания
Изменения, внесенные в документы после завершения свитка, не будут отображаться в результатах.
После завершения работы со скролом его можно удалить вручную, используя идентификатор свитка.
1 | DELETE _search/scroll/<scroll_id> |