一、前言
我们将库存快照数据导入ES后发现要分页查询10000条以后的记录会报错,这是因为ES通过index.max_result_window这个参数控制能够获取数据总数from+size最大值,默认限制是10000条,因为ES考虑到数据要从其它节点上报到协调节点如果搜索请求的数据越多,会导致ES协调节点占用的堆内存和搜索排序时间越大,但是我们又有这样的需求,虽然页面展示不需要翻到10000条记录后,但在导出XLS是需要将20万条数据一次性导出,本文介绍如何实现。
二、问题重现
1、创建映射
2、构造5万条数据导入ES
搭建SpringBoot工程使用ES官方Client构造测试数据(注:ES的Client实在是太乱了,N套SDK然后不同版本差别又很大,真是折腾)。
配置依赖包
创建客户端连接