遇到问题
最近在做爬虫数据分页查询业务,整个数据量大概在100w左右。分页查询数据量超过10000时就会报此错误,即from+size>10000。
示例
分析问题
官方限制最大检索为10000条。
为什么这样处理
- 分页查询一般只会查询前几百条或者上千条,上万的很少很少。
- es为分布式分片存储,分页查询涉及到数据的汇总、排序再分页,导致效率低下,当form更大时可能会直接拖垮机器。
- 官方提供了scroll游标API用于处理大数据,这里不做介绍。
- 切记scroll是用于大批量导出数据到其他地方,切记scroll是用于大批量导出数据到其他地方,切记scroll是用于大批量导出数据到其他地方。
解决方案
调整index.max_result_window即可恢复正常使用
后续建议
- 将数据按时间筛选如以月为单位,保证每次数据量在一个可控范围内。
- 为此类数据搭建单独的es服务保障可用性的情况下尽量避免过多机器参与。
以上均为个人见解,如有不对欢迎多多指正,共同学习进步。