存储桶过多,在直方图上聚合失败

时间:2018-09-19 16:40:23

标签: elasticsearch kibana

我有一个查询Elastic,它包含总共8个嵌套聚合,所有聚合都是term聚合,唯一的聚合是histogram聚合。如果删除该直方图聚合,查询将完美运行。但是使用直方图聚合时,会抛出此特定错误:

  

此聚合创建了太多的存储桶(10001),将抛出一个   未来版本中出现错误。您应该更新[search.max_buckets]   集群设置或使用[composite]聚合对所有页面进行分页   存储多个请求。

现在,我尝试增加max_buckets的大小,但是大小已达到100000以上,而且该数字不确定,因此可以选择。然后,我尝试按照错误中的建议创建一个composite聚合,但是在添加直方图的同时也给出了相同的错误。

所以我的问题是我是否以某种错误的方式编写查询,或者弹性不足以创建那么多存储桶?

Kibana查询:(只有3个嵌套层,原始问题只有8个嵌套层)

GET /project/test/_search
{
    "query": {
        "bool": {
            "must": [
                {
                "range": {
                    "date" : {
                        "gte": 20180101,
                        "lte": 20180630
                        }
                    }
                }
            ]
        }
    },
    "size": 0,
    "aggs": {
        "agg1": {
            "terms": {
                "field": "agg1"
            },
            "aggs": {
                "agg2": {
                    "terms": {
                        "field": "agg2"
                    },
                    "aggs": {
                        "agg3": {
                            "histogram": {
                                "field": "agg3",
                                "interval": 1
                            }
                        }
                    }
                }
            }   
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以执行此操作以将群集设置(search.max_buckets)更改为更大。 https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html

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