elasticsearch 大数据场景下使用scroll实现分页查询

本文介绍了在大数据场景下,如何利用Elasticsearch的Scroll API进行分页查询。讨论了三种可能的解决方案,包括直接查询、设置from和size以及使用Scroll API,并详细阐述了Scroll查询的核心代码,包括初始化查询、迭代查询以及清理Scroll的过程,旨在为今后的查询工作提供参考。
摘要由CSDN通过智能技术生成

es查询大批量数据的”可能方案”

当使用es来请求大批量数据时,通常有三种办法,其一:直接查询获取全量数据;其二:使用setFrom以及setSize解决;其三:使用es自带的scroll分页支持

方案评估


对于上述方案的评估,此处建议大家可以先看看这篇文章 Elasticsearch 搜索内部执行原理

方案选择


经上述评估,显然,最终采取scroll进行分页实现,分页后的数据处理有两种方式可供处理。第一种,获取分页后的数据再聚合;第二种,直接处理分页后的数据。对于第一种,如若聚合后的数据有几十万、上百万,乃至更多,那势必会导致系统内存飙升,jvm老年代可能会被迅速打满,进而促发full gc, 若full gc后仍得不到可用空间,可能会造成oom,服务直接不可用。所以第一种处理方式是存在风险的,推荐使用第二种

核心代码


假定各位maven已配置好,es处于可用状态
使用scroll分页主要分为2步,第1步,初始化查询,获取scrollI
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值