如何在Elasticsearch中获得最活跃的10%用户?

时间:2014-10-07 14:51:44

标签: elasticsearch aggregation

我想对最活跃的10%用户执行一些聚合。

让我们说我的文件是:

{
  "createDate": "2014-10-7T05:43:02",
  "user":"Raz",
  "os":"IOS"
},
{
  "createDate": "2014-10-7T07:43:02",
  "user":"Raz",
  "os":"Android"
},
{
  "createDate": "2014-10-7T09:43:02",
  "user":"Jim",
  "os":"Android"
}

我的聚合是:

"aggs": {
"time_aggs": {
  "date_histogram": {
    "field": "createDate",
    "interval": "10m"
  },"aggs": {
     "device_os":{
        "term": {
            "os":"IOS"
         }
      }
    }
 }

我应该在聚合中添加什么才能将它们仅应用于最多10%的活跃用户?

感谢。

1 个答案:

答案 0 :(得分:0)

现在我通过计算特定时间范围内不同用户的数量来实现这一点(使用基数聚合)。然后我将术语clientId聚合在一起,其大小反映了不同用户的10%。