【问题标题】:How to fetch more than 10000 records from Elasticsearch 7.X.X如何从 Elasticsearch 7.X.X 中获取超过 10000 条记录
【发布时间】:2019-07-17 03:22:14
【问题描述】:

我需要从 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 中不起作用

【问题讨论】:

    标签: python elasticsearch


    【解决方案1】:

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

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

    description)

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

    【讨论】:

      猜你喜欢
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 2018-01-25
      • 2022-08-23
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多