我有一个查询,我是按智能手机分组,然后按运营商分组。在这些嵌套聚合中,我希望找到每个运营商的avg价格、评级和速度。这是我当前的查询:
{
"aggs": {
"group_by_smartphone": {
"terms": {
"field": "smartphone"
},
"aggs": {
"group_by_carrier": {
"terms": {
"field": "carrier"
},
"aggs": {
"group_by_avg_price": {
"avg": {
"field": "price"
}
}
},
"group_by_rating":{
"avg":{
"field": "rating"
}
}
}
}
}
}
}对于当前的查询,我收到一个错误消息:
“类型”:"parsing_exception",“原因”:“在group_by_carrier: terms和group_by_rating中找到两个聚合类型定义”,
如何解决这个问题,以便显示每个平均值的正确结果?
发布于 2017-07-18 15:00:55
试一试:
{
"aggs": {
"group_by_smartphone": {
"terms": {
"field": "smartphone"
},
"aggs": {
"group_by_carrier": {
"terms": {
"field": "carrier"
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
},
"avg_rating":{
"avg":{
"field": "rating"
}
},
"avg_speed":{
"avg":{
"field": "speed"
}
}
}
}
}
}
}
}所有子聚合都需要位于相同的aggs结构中。
https://stackoverflow.com/questions/45170075
复制相似问题