ES 使用 滚动浮标 读取大数据量

今天使用es的分页查询时报了一个错误,大致内容就是from+size的数据大于10000。这个错误的原因是,ES的默认值为1万,可以修改配置文件实现。不过有一个更高效的方法,即使用是scroll解决。该方案也是解决深度分页问题的主要方式。

DSL

使用DSL语句的方式如下。
在这里插入图片描述
发送查询的结果如下。
在这里插入图片描述结果的第一行就是游标,我们使用该游标,继续往下执行。直接添加游标信息即可,不需要索引等信息。
在这里插入图片描述
查询结果如下,第一行依旧是游标值,且数值不变。
在这里插入图片描述

High Level REST Client

High Level REST Client的使用 官网有教程,原理也是一样的。
官网教程
这里给下测试结果,4800万数据,每次读取10000条,耗时两秒效率非常高。
在这里插入图片描述

直击面试

ES的面试题,深度分页问题是常考题。使用该方案可以很好地解决深度分页问题。通过游标遍历下一页,效果类似微博的下滑刷新结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值