想要通过bucket_selector筛选出histogram.avg聚合中平均值最大的桶,可以使用max_bucket计算出返回的桶中平均值的最大值,但是不能在bucket_selector中获取到,查看了官方文档,文档上的例子都是一个固定值。
自己分析,一个是parent型一个是sibling型,而且max_bucket的计算顺序是在bucket_selector之后的。
那么是否就是不能在bucket_selector中获得到max_bucket的参数?
那么如果要实现这个需求,是否只能用bucket_sort:{sort:[{avg:{order:desc}],size:1}实现?
附上部分dsl
{
"size": 0,
"aggs": {
"per_period": {
"date_histogram": {
"field": "timestamp",
"interval": "15d",
"format": "yyyy-MM-dd"
},
"aggs":{
"avg":{
"sum":{
"field": "AvgTicketPrice"
}
}
}
},
"max_per_period_metric":{
"max_bucket": {
"buckets_path": "per_period>avg"
}
}
}
}
自己分析,一个是parent型一个是sibling型,而且max_bucket的计算顺序是在bucket_selector之后的。
那么是否就是不能在bucket_selector中获得到max_bucket的参数?
那么如果要实现这个需求,是否只能用bucket_sort:{sort:[{avg:{order:desc}],size:1}实现?
附上部分dsl
{
"size": 0,
"aggs": {
"per_period": {
"date_histogram": {
"field": "timestamp",
"interval": "15d",
"format": "yyyy-MM-dd"
},
"aggs":{
"avg":{
"sum":{
"field": "AvgTicketPrice"
}
}
}
},
"max_per_period_metric":{
"max_bucket": {
"buckets_path": "per_period>avg"
}
}
}
}
0 个回复