我正在尝试执行平均术语计数(count_bucket),但出现错误:
"buckets_path must reference either a number value or a single value numeric metric aggregation, got: [Bucket] at aggregation [count_bucket]"这是我的查询:其中count_bucket是计数项agg,我想要其中的avg。
{
"size": 0,
track_total_hits: true,
"query": {
"bool": {
"must": queries,
"must_not": {
"exists": {
"field": supress
}
}
}
},
"aggs": {
"count_bucket": {
"terms": {
"field": field,
"size": 500,
"order": {
"_key": "desc"
}
}
},
"avg_count": {
"avg_bucket": {
"buckets_path": "count_bucket"
}
}
}
}发布于 2020-06-09 04:21:51
错误消息中描述了该问题:与sum或value_count等其他聚合不同,术语聚合不返回单个值。因此,您不能对这些存储桶执行avg_bucket聚合。
一个好的解决方案是在每个存储桶上使用value_count聚合来返回单个值,然后您可以对该值执行avg_bucket聚合:
下面是它的外观:
{
"query": {
"bool": {
"must": queries,
"must_not": {
"exists": {
"field": supress
}
}
}
},
"aggs": {
"count_bucket": {
"terms": {
"field": field,
"size": 500,
"order": {
"_key": "desc"
}
},
"aggs": {
"docs_count": {
"value_count": {
"field": field
}
}
}
},
"avg_count": {
"avg_bucket": {
"buckets_path": "count_bucket>docs_count"
}
}
}
}https://stackoverflow.com/questions/62269585
复制相似问题