有个人长的像洋葱,走着走着就哭了…….

请问ES如何实现大跨度跳页操作

Elasticsearch | 作者 envy666 | 发布于2019年08月07日 | 阅读数:5565

searchafter只能实现向下翻页,
from、size效率实在太差,而且容易把ES搞奔溃,
ES有没有什么方法实现大跨度跳页呢,比如从第一页直接跳到10w页(的确有业务需求)
已邀请:

zqc0512 - andy zhou

赞同来自:

try  scroll
 

ziyou - 一个学习ELK的Java程序员

赞同来自:

先说这个查询的条数的瓶颈问题,使用from+size的方式,ES默认最多查10000条,scroll 倒是可以,就是不能实现你说的这种跳跃式的查询。
再说你的业务需求,你们什么业务需求导致你们需要从第一页数据直接跳到第10万页,你们的业务需求是不是可以通过另一中设计来实现。
给你两种思路,第一把第10W页 的数据通过各种精细化的查询 ,展示在前几页;第二,你们需要10万页的时候你们可以通过后台数据处理,精细化查询,把精细化查询的数据拼接起来组成这个10万页,而每次查询其实就只是查询了少量数据的前几页而已,举个栗子,你需要查询10万页的数据,这所有的数据是按照时序倒序的,你就可以在后台查询的时候,精细化时间段,通过其他方法估算出10万页大致的时间段,然后算这个时间段之前总共多少条、多少页,第10万页应该从这个时间段的哪一条开始,然后使用from+size方式。
上面两种方式第一种是简单的、经常使用的,而第二种是特意为你说的这种情况分析的,一般很少会有系统使用这种方案,除非有完全不能改的东西。

Joshua

赞同来自:

这种情况,一般来说不适合用es来进行处理,非要用es,建议在业务层面进行调整而不是在es这想办法

doom

赞同来自:

这种问题,真不适合用这种模型的库;内部索引是用Hash,不是连续;而且,问题应该是出现在你自己的帅选上;这种业务,你要考虑是不是自己选型错误;而不是来考虑怎么做到这么有跨度页面的查询;

要回复问题请先登录注册