我在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"
}
}
}
}
}
}