5
我有数据如下:ElasticSearch聚集在排名靠前的
{"action":"CREATE","docs":1,"date":"2016 Jun 26 12:00:12","userid":"1234"}
{"action":"REPLACE","docs":2,"date":"2016 Jun 27 12:00:12","userid":"1234"}
{"action":"REPLACE","docs":1,"date":"2016 Jun 27 13:00:12","userid":"1234"}
{"action":"CREATE","docs":1,"date":"2016 Jun 28 12:00:12","userid":"3431"}
{"action":"REPLACE","docs":2,"date":"2016 Jun 28 13:00:12","userid":"3431"}
{"action":"CREATE","docs":1,"date":"2016 Jun 29 12:00:12","userid":"9999"}
按日期得到记录每一个独特的用户顺序(降序),我使用的排名靠前的像下面这样:
"aggs": {
"user_bucket": {
"terms": {
"field": "userid"
},
"aggs": {
"user_latest_count": {
"top_hits": {
"size": 1,
"sort": [
{
"data": {
"order": "desc"
}
}
],
"_source": {
"include": [
"docs"
]
}
}
}
}
}
}
上述查询的结果如下:
{"action":"REPLACE","docs":1,"date":"2016 Jun 27 13:00:12","userid":"1234"}
{"action":"REPLACE","docs":2,"date":"2016 Jun 28 13:00:12","userid":"3431"}
{"action":"CREATE","docs":1,"date":"2016 Jun 29 12:00:12","userid":"9999"}
现在,我想进一步聚集会这样的结果是如下:
{"sum_of_different_buckets": 4}
但不知道如何SUM领域的“文档”从上面获得的结果值。
我不明白你想达到什么目的。总结哪些文档值?结果应该如何? –
我编辑了这个问题,请现在检查。基本上我需要比Top Hits聚合更高一级的聚合,这样我才能得到字段“docs”的总和。 – SuperCoder
我不认为这是可能的,因为你想使用top_hits的输出,并且此后的聚合不能用于其他聚合。难道你不能只在你自己的代码/应用程序中完成总和吗? –