映射:
"angular-cli": "^1.0.0-beta.28.3",
如果有几行具有相同的player_id,我需要为每个使用过的player_id的行计算平均值,其中每一行的max_stat_date为最大值。
所以我需要所有玩家的最后日期平均值
由于“类型为[avg]的聚合器[average_val]无法接受子聚合”,此代码段无法正常工作
player_id: int
stat_date: date
some_param: int
最简单的方法是使用简单的平均值
get test/test/_search
{
"size":0,
"aggs": {
"average_val":{
"avg": {
"field": "some_param"
},
"aggs": {
"by_player": {
"terms": { "field" : "player_id" },
"aggs" : {
"by_date" : {
"max" : { "field" : "stat_date" }
}
}
}
}
}
}
}
但是我只需要为最近的统计日期计算平均播放器“ some_param”。
答案 0 :(得分:0)
我认为您只需要反转聚合的顺序即可。将avg聚合置于最深层的聚合中,它应该可以正常工作。
聚合有两种主要类型。平均是指标汇总,并输出指标(数字)。您需要将存储桶聚合(如术语聚合)放在外部,并对它们的输出进行指标聚合。