Elasticsearch语法错误:在[bucket]中发现两个聚合类型定义:[composite]和[sum_buck



我使用ElasticSearch 6.1,并得到一个错误,当我试图使用复合和sum_bucket在我的聚合在一起。

它给我一个错误:

原因:在[my_buckets_sale]中发现两个聚合类型定义:[composite]和[sum_monthly_sales]"下面是我想要做的一个例子:

{
...
"size": 0,
"aggs" : {
"my_buckets_sale" : {
composite: {
size    : 4,
sources : [
{
date : {
date_histogram : {
field    : '@timestamp',
interval : 'day',
},
},
},
},
],
}
"date_histogram" : {
"field" : "date",
"interval" : "month"
},
"aggs": {
"sales": {
"sum": {
"field": "price"
}
}
}
"sum_monthly_sales": {
"sum_bucket": {
"buckets_path": "my_buckets_sale>sales" 
}
}
}
},
}

有谁知道如何做所有桶的总和,保持我的组合吗?

您想要做的是保持复合聚合不变,同时仍然获得每个月所有销售额的总和?结构如下:

{
"size" : 0,
"aggs" : {
"my_bucket_sale" : {
"composite" : {...},
"aggs" : {
"sum_of_sales" : {
"sum" : {"field" : "price"}
}
}
},
"my_bucket_months" : {
"date_histogram" : {"field" : "date", "interval" : "month"},
"aggs" : {
"sum_of_monthly_sales" : {
"sum" : {"field" : "price"}
}
}
}
}
}

只需在日期直方图上创建子聚合,以根据需要为您提供总和。没有必要将其与复合聚合混合使用。

谢谢。

最新更新