gpt4 book ai didi

java - ElasticSearch 分页通过 ScrollApi 向前和向后移动

转载 作者:行者123 更新时间:2023-12-02 03:11:32 24 4
gpt4 key购买 nike

是否可以在 ElasticSearch 中使用 ScrollApi 进行分页前进和后退?

经典解决方案(setFrom()、setSize())不适合,因为 windows_size 太小。

scrollApi 下面的代码可以很好地实现无限滚动。

if (parameters.getOffset() == 1) {
SearchRequestBuilder searchRequestBuilder = client.prepareSearch(MY_INDEX).setTypes(documentsType);
//...
} else {
//
SearchResponse scrollResponse = client.prepareSearchScroll(parameters.getScrollId())
.setScroll(TimeValue.timeValueMinutes(1)).get();
//...
}

最佳答案

是的,当总结果数超过 10000 时,可以使用滚动 api 对响应进行分页。它的工作原理是这样的:1.首先使用scroll关键字和大小(表示每页结果数)搜索ES2. 所以ES会返回第一批结果和一个滚动id。3. 您需要在下次调用 ES 时传递相同的滚动 id 以及大小参数以获取下一批等等。

如果你有前端,那么你可以在结果中传递滚动 id,以便 UI 的下一次调用在请求中包含该 id,并且你可以在后端服务中使用它来进行 ES 调用。

官方网站提供详细信息-https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html

关于java - ElasticSearch 分页通过 ScrollApi 向前和向后移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56991595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com