[英]Elastic search use range aggregation upon term aggregation result
我的 SQL 格式問題很簡單,但我可以將其轉換為彈性聚合格式
假設我想要彈性搜索中的 blew 查詢結果
SELECT Foo.Type,COUNT(*) FROM Foo GROUP BY Foo.Type HAVING SUM(Foo.Price) > 20 AND SUM(Foo.Price) < 25
彈性中是否有任何聚合組合可以響應此類查詢?
重要的是要提到第一組(Foo.Type)的結果大於最大彈性聚合大小(10000)
我的數據是:
身份證類型價格
1 藍色 10
2藍10
3 藍色 5
4 紅色 15
我的結果應該是這樣的:
藍3
如果有人可以幫助我,我將不勝感激。 謝謝
你可以像下面那樣做
{
"aggs": {
"byType": {
"terms": {
"field": "type"
},
"aggs": {
"price_sum": {
"sum": {
"field": "price"
}
},
"price_bucket_filter": {
"bucket_selector": {
"buckets_path": {
"totalPrice": "price_sum"
},
"script": "params.totalPrice > 20 && params.totalPrice< 25"
}
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.