如何从Elasticsearch 7.X.X获取10000条以上的记录

时间:2019-07-16 13:17:29

标签: python elasticsearch

我需要从Elasticsearch中获取10000条以上的记录,但无法从python的Elasticsearch 7.2中设置index.max_result_window

我已使用以下命令在正在运行的Elasticsearch V6中将窗口限制设置为100000

es.indices.create(index=prod_index, body={"settings": {"index.mapping.total_fields.limit": 50000, "index.max_result_window" : 100000})

同一命令在Elasticsearch 7.2中不起作用

1 个答案:

答案 0 :(得分:2)

最好不要这样做,这就是为什么他们将最大数量设置为10000的原因。增加index.max-result-window并不是一个好主意,它可能导致集群延迟或崩溃。设置大小后,ES会在获取数据之前创建相同大小的堆。这些记录将保留在RAM中,除非您拥有强大的硬件和巨大的堆空间,否则最好不要这样做,因为它可能会使群集崩溃或使其速度变慢。

替代方法是使用scroll APIFrom-sizeSearch-after(可能是最好的-

description

您可以检查this解决方案。它帮助我在不降低群集的情况下获取了更多700k个文档。另外,您可以查看this答案。