在我的查询中,我将存储桶汇总为一个标量。由于我对每个存储桶(在我的案例中为数千万个)都不感兴趣,因此我想从返回的结果中删除它们;即我想执行“size”:0之类的操作来隐藏所有匹配。可能吗?
例如。:
{
"size": 0,
"aggs": {
"pop": {
"terms": {
"field": "account_number",
"size": 0
},
"aggs": {
"average": {
"avg": {
"field": "price"
}
}
}
},
"sum_of_avg": {
"sum_bucket": {
"buckets_path": "pop>average"
}
}
}
}
结果:
[...]
"aggregations": {
"pop": {
"doc_count_error_upper_bound": 40851,
"sum_other_doc_count": 93441329,
"buckets": [...] <== i don't want this
},
"sum_of_avg": {
"value": 128.0768325884469
}
最佳答案
我刚刚在相关问题中张贴了answer。
在这种情况下,请求应如下所示:
curl -XPOST 'http://localhost:9200/<index>/_search?filter_path=aggregations.sum_of_avg' -d '
{
"size": 0,
"aggs": {
"pop": {
"terms": {
"field": "account_number",
"size": 0
},
"aggs": {
"average": {
"avg": {
"field": "price"
}
}
}
},
"sum_of_avg": {
"sum_bucket": {
"buckets_path": "pop>average"
}
}
}
}
PS:如果您找到其他解决方案,请在此处分享。谢谢!