如何使用弹性搜索计算由另一个字段分组的一个字段的百分位数?我试过这个:
GET /dealergeo/sale/_search
{
"size": 0,
"aggs": {
"dom_rank": {
"percentiles": {
"field": "avgdom"
},
"aggs": {
"name": {
"terms": {
"field": "make",
"size": 10
}
}
}
}
}
}
所以基本上我想通过 make 对所有数据进行分组,然后计算 avgdom 的百分位数,但它会出错:
{“error”:{ “根本原因”: [ { “type”:“aggregation_initialization_exception”, “reason”:“[百分位数]类型的聚合器[dom_rank]不能接受子聚合” } ] “type”:“aggregation_initialization_exception”, “reason”:“[百分位数]类型的聚合器[dom_rank]无法接受子聚合”},“status”:500}
我在这里缺少什么?或者弹性搜索可以吗?谢谢你的帮助!
答案 0 :(得分:0)
想通了,我需要将percentile
聚合包装在terms
聚合内,而不是相反:
GET /dealergeo/sale/_search
{
"size": 0,
"aggs": {
"make_agg": {
"terms": {
"field": "make",
"size": 5
},
"aggs": {
"dom_rank": {
"percentiles": {
"field": "avgdom"
}
}
}
}
}
}