【问题标题】:Elastic search aggregation query throwing exception弹性搜索聚合查询抛出异常
【发布时间】:2020-03-13 14:04:53
【问题描述】:

在查询弹性搜索聚合查询时,我收到“尝试创建太多存储桶。必须 b 小于或等于 10000 但找到 10001。”

我们如何处理这个异常?

【问题讨论】:

    标签: elasticsearch elasticsearch-aggregation


    【解决方案1】:

    this 链接中所述,search.max_buckets 的默认限制为10000

    这样的限制的全部目的是为了防止一些新手用户意外运行长时间和资源消耗的聚合查询,这可能导致性能问题,或者在更糟糕的情况下导致 ES 节点崩溃。

    但是,如果您想更改该设置,有两种方法可以解决。

    解决方案 1:更改 elasticsearch.yml(需要重启节点)

    您需要转到集群中所有节点的elasticsearch.yml 并在其中添加以下值,

    search.max_buckets = 10500

    保存文件并重启节点。

    解决方案 1:集群 API(无需重启)

    或者,我相信您可以使用cluster API并将设置添加到persistent cluster settings,如下所示:

    PUT /_cluster/settings
    {
      "persistent": {
        "search.max_buckets": 12000
      }
    }
    

    由于该设置似乎是集群范围的,因此我建议使用 Solution 2

    提供的内容,请分享您希望存储桶返回超过 10k 个存储桶的原因。如果您更改设置以便您不会开始在实时环境中看到性能问题,也请进行彻底测试,如果您这样做,这是您要记住的第一件事。

    如果这有助于您解决问题,请告诉我。

    【讨论】:

    • @Harmeet,上述解决方案是否解决了您的问题?您需要进一步的帮助吗?
    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2017-03-10
    相关资源
    最近更新 更多