我的ES群集中有很多用户生成的事件。每个事件都包含用户的UUID。
我正在尝试编写一个查询,根据每个用户生成的事件数量,将用户分为低,中,高活动。
我正在使用此查询来获取每个用户生成的事件数:
{
"aggs" : {
"users" : {
"terms" : { "field" : "user_id.raw" }
}
}
}
这样可以正常工作,但我需要使用之前的结果“doc_count”将结果转换为范围查询,以便我可以将每个用户排序为低,中,高活动桶。
我尝试了一些方法来使用子聚合访问doc_count字段,但从未设法让它工作。我认为这将是一个相当常见的用例,但似乎无法破解它,所以任何帮助都会非常感激。
答案 0 :(得分:2)
我已经针对此问题更新了https://github.com/elasticsearch/elasticsearch/issues/4983?_pjax=%23js-repo-pjax-container。
看起来对聚合框架(但是)的一个小改进非常有用。
答案 1 :(得分:0)
你可以做类似的事情:
{
"aggs" : {
"tally" : {
"sum" : {
"script": "1"
}
},
"aggs" : {
//refer to tally here as the value would be same as doc_count
}
}
}