2017-10-06 91 views
0

我需要创建一个“按活动用户数量”的条形图。活跃用户表示最近7天登录的用户。 所以我需要统计last_activity日期在7天内的用户总数。我需要为我的图表中的每个酒吧(日)执行此操作。我应该使用哪些elasticsearch聚合?

我明白它需要使用聚合弹性搜索来完成,但不确定

我应该使用哪些聚合?存储桶聚合,管道聚合?

如果你知道类似的例子,请告诉我。

在这里您可以找到用户样本文件的两个实例“约翰”

{ 
    "userid": "john", 
    "last_activity": "2017-08-09T16:10:10.396+01:00", 
    "date_of_this_report": "2017-09-24T00:00:00+01:00" 
} 


{ 
    "userid": "john", 
    "last_activity": "2017-08-09T16:10:10.396+01:00", 
    "date_of_this_report": "2017-09-25T00:00:00+01:00" 
} 

回答

0

可以过滤与上次活动的用户使用elasticsearch的date math操作过去7天。您可以将date histogram aggregation.

POST active_users/document_type1/_search 
{ 
    "size": 0, 
    "aggs": { 
    "filtered_active_users_7_days": { 
     "filter": { 
     "range": { 
      "last_activity": { 
      "gte": "now-7d/d" 
      } 
     } 
     }, 
     "aggs": { 
     "date_histogram_last_7_days": { 
      "date_histogram": { 
      "field": "last_activity", 
      "interval": "day" 
      } 
     } 
     } 
    } 
    } 
} 

希望这对你的作品前推过滤器。

+0

谢谢,我会尝试这一点,让我知道,只要我再次访问。 – ozkolonur

+0

它是如何去的。我很困惑,这也可以通过分组聚合来实现。 – user3775217