es中三种查询用法from size、search after、scroll 分页

一、三者之间的区别
from size:
深度分页或者size特别大的情况,会出现deep pagination问题。且es的自保机制max_result_window是10000,当查询数量超过一万就会报错
该查询的实现原理类似于mysql中的limit,比如查询第10001条数据,那么需要将前面的1000条都拿出来,进行过滤,最终才得到数据。(性能较差,实现简单,适用于少量数据)
search after
search_after缺点是不能够随机跳转分页,只能是一页一页的向后翻(当有新数据进来,也能实时查询到),并且需要至少指定一个唯一不重复字段来排序(一般是_id和时间字段)
当使用search_after时,from值必须设置为0或者-1
可以查询10000条以上数据
scroll
高效进行滚动查询,首次查询会在内存中保存一个历史快照以及游标(scroll_id),记录当前消息查询的终止位置,下次查询的时候将基于游标进行消费(性能良好,不具备实时性,一般是用于大量数据导出或者索引重建)
可以查询10000条以上数据

原文链接:https://blog.csdn.net/yuxiangdeming/article/details/122696608

 

https://blog.csdn.net/weixin_45143622/article/details/114921108?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-114921108-blog-122696608.pc_relevant_3mothn_strategy_and_data_recovery&spm=1001.2101.3001.4242.2&utm_relevant_index=4

posted @ 2022-10-20 09:52  星云惊蛰  阅读(1366)  评论(0)    收藏  举报