目录
- 一、前言
- 二、from+size浅分页
-
- 1、from+size导致深度分页问题
- 三、scroll深分页
-
- 1、scroll原理
- 2、scroll可以返回总计数量
- 四、search_after深分页
-
- 1、search_after避免深度分页问题
一、前言
ES的分页常见的主要有三种方式:from+size浅分页、scroll深分页、search_after分页。
二、from+size浅分页
查询步骤如下:
(1)、先对关键字进行分词;
(2)、将词进行检索,得到多个文档的id;
(3)、去各个分片中拉取指定的数据【会耗时长】;
(4)、在协调节点上汇总各个分片数据,且按照score排序【会耗时长】;
(5)、根据from、size值,截取满足条件的查询数据,返回;
—假若索引有3个分片,那么按照规则,从各个分片各自取指定数量的数据,在协调节点进行汇总,再根据score进行排序,会根据from、size值截取满足条件的数据。
【一般是:如果有的话,各个分页会返回from+size的数据,在协调节点汇总且score排序,在根据from、size值去截取对应数据。】
from+size优点:
每次获取最新的记录;
能够跳页查询;
from+size缺点:
同一个查询,展示另一页查询时,需要重新执行,耗时且耗内存;
Elast