ElasticSearch 默认提供 10 条记录,但是我们可以设置 size 参数并且可以获取超过 10 条记录但有限制,如果我们使用 Elasticsearch 的 Jest 客户端,我们只能设置 10000 作为记录大小,如果超过 10000然后抛出异常。
请帮助我使用 jest 客户端(java)在 elasticsearch 中一次获取超过 10,000 条记录
ElasticSearch 默认提供 10 条记录,但是我们可以设置 size 参数并且可以获取超过 10 条记录但有限制,如果我们使用 Elasticsearch 的 Jest 客户端,我们只能设置 10000 作为记录大小,如果超过 10000然后抛出异常。
请帮助我使用 jest 客户端(java)在 elasticsearch 中一次获取超过 10,000 条记录
这个限制是有原因的——引用文档:
默认为 10,000 是一种安全措施,
index.max_result_window
搜索请求占用堆内存和时间与 from + size 成正比。
根据您的用例,有更好的选择:
您可以更新 elasticsearch 的 max-result 窗口。
curl -XPUT "http://localhost:9200/my_index/_settings" -d '{ "index" : { "max_result_window" : 500000 } }'
但这只会持续到 Elastic 重新启动。你可以做出改变
index.max_result_window: 1000000
elasticsearch.yml
存档永久解决方案。