我知道 Elasticsearch 支持带有分桶的子聚合(其中分桶聚合可以有分桶或度量子聚合)。度量聚合不能进行子聚合。可能这是有道理的,但这是用例。
我有术语聚合作为父母。并使用另一个term
聚合作为它的子级。childterm
有一个类型为的子聚合top_hits
。top_hits
是一个度量聚合,因此它不能采用任何子聚合。现在需要avg
在组合中加入聚合。Given是聚合树中的最后一个聚合,因为它是一个度量聚合,所以它top_hits
不能avg
作为它的子级。top_hits
以下是所需的聚合级别。(当然它是无效的,因为它top_hits
是一个度量聚合并且对于avg
聚合也是如此。
{
"aggregations": {
"top_makes": {
"terms": {
"field": "make"
},
"aggregations": {
"top_models": {
"terms": {
"field": "model"
},
"aggregations": {
"top_res": {
"top_hits": {
"_source": {
"include": [
"model",
"color"
]
},
"size": 10
}
}
}
}
},
"aggregations": {
"avg_length": {
"avg": {
"field": "vlength"
}
}
}
}
}
}
解决此问题的解决方法或最佳方法是什么?