elasticsearch 的分页机制 不做介绍,这个是连接 ,可以了解一下,我主要讲解问题的解决方案 。https://blog.csdn.net/andybegin/article/details/83864171
下面是我做的分析,希望能够耐心的看完,看完你就懂了:
首先浅分页会导致效率问题,数据少还好,数据多就无法使用,在浅分页的基础上做下改动就可以实现我们的需求,首先查询加一个参数,这个参数为上一页最后一条数据的唯一标识,加这个是为了防止在查询过程中又新增了新的数据导致计算分页起始数据时出现重复,举例,现在有1-50条数据,当你要倒叙查询时,分页每页查10条,第一页应该为50-41,在查询第二页时这个时候elasticsearch又新增了一条数据,现在有51条,当你查第二页时,查询了前20条,51-32,并且以浅分页去掉第一页数据剩下第二页41-32,这个时候第一页的50-41和第二页的41-32有一条重复,在不刷新第一页的数据情况下下拉分页时忽略在这个过程中新增的数据,这个时候需要加前一页的唯一标识。
加了这个字段后,我们在来理分页,这个时候分页还是浅分页原理,所以在加了这个字段后每次只需要查第一页就行了
如:这里的beforeId为前一页的最后一条数据的唯一标识