我想按属性分组,并且只得到结果中返回的最便宜的。
当我在弹性指数中包含以下信息时:
名称|价格|输入
我希望得到以下结果
名称|价格|输入
我尝试通过以下查询获得这样的结果:
{
"aggregations": {
"aggregation_1": {
"terms": {
"field": "type.keyword",
"order": {
"price_min": "desc"
},
"size": 5
},
"aggregations": {
"price_min": {
"min": {
"field": "price"
}
}
}
}
},
"size": 10
}
但是该查询的结果返回所有项目,聚合是获取我想要的错误方法吗?
答案 0 :(得分:2)
您要这样做,即针对每种产品类型,以最低的价格找到匹配项:
{
"size": 0,
"aggregations": {
"aggregation_1": {
"terms": {
"field": "type.keyword",
"size": 5
},
"aggregations": {
"cheapest": {
"top_hits": {
"size": 1,
"sort": {
"price": "asc"
}
}
}
}
}
}
}