es报错nested: QueryPhaseExecutionException[Result window is too large, from + size must be less than .

遇到问题

最近在做爬虫数据分页查询业务,整个数据量大概在100w左右。分页查询数据量超过10000时就会报此错误,即from+size>10000。

示例

超出范围

分析问题

官方限制最大检索为10000条。

为什么这样处理

  • 分页查询一般只会查询前几百条或者上千条,上万的很少很少。
  • es为分布式分片存储,分页查询涉及到数据的汇总、排序再分页,导致效率低下,当form更大时可能会直接拖垮机器。
  • 官方提供了scroll游标API用于处理大数据,这里不做介绍。
  • 切记scroll是用于大批量导出数据到其他地方,切记scroll是用于大批量导出数据到其他地方,切记scroll是用于大批量导出数据到其他地方。

解决方案

调整index.max_result_window即可恢复正常使用
调整index.max_result_window

后续建议

  1. 将数据按时间筛选如以月为单位,保证每次数据量在一个可控范围内。
  2. 为此类数据搭建单独的es服务保障可用性的情况下尽量避免过多机器参与。

以上均为个人见解,如有不对欢迎多多指正,共同学习进步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值