ES解决深分页问题以及实现Scroll 查询 API的示例分析


这篇文章给大家介绍ES解决深分页问题以及实现Scroll 查 香港云主机询 API的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ES 普通的分页查询有深分页限制,默认是10000条。(因为越往后面分越耗内存)所以要查询1万条以后的数据,要不就缩小查询范围,要不用别的方法。ES 提供了 scroll 查询。第一次查询获取到scroll_id,下次查询通过scroll_id直接查询。scroll相当于维护了一份当前索引段的快照信息,这个快照信息是你执行这个scroll查询时的快照。在这个查询后的任何新索引进来的数据,都不会在这个快照中查询到。但是它相对于from和size,不是查询所有数据然后剔除不要的部分,而是记录一个读取的位置,保证下一次快速继续读取。而且也不能排序,只能按默认的文档顺序,比较适合查询扫描全量数据。分页方式说明优点缺点场景常用的分页方式,指定分页大小和偏移量可以直接获取到需要的数据。但内存消耗特别大,且速度很一般,当我们指定from = 100000,size = 10 的时候,每个node都会取出top 100000的数据,再进行汇总排序,假设3个node,那么就需要取出3*100000条数据进行排序后,再取top10的数据进行返回。所以ES默认的from+size的限制设置为10000。在数据量到达十万级百万级的时候这种分页方式显然不合理。一种快照的查询形式,快照一旦形成,本次滚动查询内便无法查出来新增的那些数据,而且scroll是无法进行排序的,也无法指定from,那么我们想查看指定页码的数据就必须将该页数据之前的全部数据取出来再进行丢弃,所以scroll一般用于导出全量数据。关于ES解决深分页问题以及实现Scroll 查询 API的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: C#调用C++的坑分析

这篇文章主要介绍“C#调用C++的坑分析”,在日常操作中,相信很多人在C#调用C++的坑分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#调用C++的坑分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!一般来说,C#调用…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 09/06 13:21
Next 09/06 13:21

相关推荐