elasticsearch - Elasticsearch 聚合查询抛出异常

标签 elasticsearch elasticsearch-aggregation

查询elasticsearch聚合查询时,我得到“尝试创建太多存储桶。必须b小于或等于10000但找到10001。”
我们如何处理该异常?

最佳答案

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

所提供的信息,请与您分享为什么您希望这些存储桶返回超过1万个存储桶的原因。如果只是更改设置,也要进行彻底的测试,以免在实际环境中看不到性能问题;如果这样做,这是您要牢记的第一件事。

让我知道这是否有助于您解决问题。

关于elasticsearch - Elasticsearch 聚合查询抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60671904/

相关文章:

amazon-web-services - AWS Elasticsearch 集群磁盘空间在数据实例之间不平衡

elasticsearch - Elastic Search搜索所有字段并提高精确匹配

elasticsearch - 是否可以对span_near查询的唯一结果排序高于重复结果?

docker - elasticsearch-1.6 连接到其 docker 容器时无法初始化类 org.elasticsearch.monitor.jvm.JvmInfo

elasticsearch基于属性的嵌套聚合,并根据每个桶中的公式获取自定义值

elasticsearch - 在多个字段上聚合-Elasticsearch

elasticsearch 7嵌套聚合文本关键字错误

elasticsearch - 按日期和类别 Elasticsearch 查询分组

ElasticSearch:如何制作聚合管道?

elasticsearch - 如何在Elasticsearch完成建议程序中突出显示匹配项