[英]filtering an elasticsearch query by aggregations
嗨,我的問題分為兩個部分。 我有一個看起來像的數據集
{name: "foo",
contracts: [{size: 1}, {size: 3}]},
{name: "bar",
contracts: [{size: 100}, {size: 300}]}
使用指標聚合,我可以計算出所有項目的平均大小。 1+3+100+300 / 4,但是是否可以返回每個項目的平均合同大小?
我希望能夠回來
{name: "foo",
averageContract: 2},
{name: "bar",
averageContract: 200},
另外是否有可能獲得該值並對其進行過濾?
例如匹配 averageContract > 100?
嘗試這個:
{
"size": 0,
"aggs": {
"item": {
"terms": {
"field": "name.keyword",
"size": 10
},
"aggs": {
"averageContract": {
"avg": {
"field": "contracts.size"
}
},
"selector_avg_contract": {
"bucket_selector": {
"buckets_path": {
"avg": "averageContract"
},
"script": "params.avg > 100"
}
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.