身安不如心安,屋宽不如心宽 。

elasticsearch中search after 对scroll有什么优化?search after每次可以最大取多少数据?

Elasticsearch | 作者 陈水鱼 | 发布于2019年01月04日 | 阅读数:2777

系统提示:这个人太懒了,什么问题描述都没有写!

已邀请:

rochy - rochy_he

赞同来自:

search after 其实和 scroll 是两种不同的请求;
scroll 常用于数据导出
search after 一般用于翻页(特别是深度翻页的场景),搜索的时候在你指定的 id 或者文档元素之后进行查询,翻页效率会比 from+size 的方式好很多
search after 可以突破 from+size 的数量限制(index.max_result_window),至于最大多少,你需要自己测试
 
官方的说明如下(Google翻译):
结果的分页可以通过使用from和size来完成,但是当达到深度分页时,成本变得过高。 默认为10,000的index.max_result_window是一个安全措施,搜索请求占用堆内存,时间与+ size成正比。 建议使用Scroll api进行高效深度滚动,但滚动上下文代价很高,建议不要将其用于实时用户请求。 search_after参数通过提供实时游标来解决此问题。 我们的想法是使用上一页的结果来帮助检索下一页。

要回复问题请先登录注册