2017-10-06 90 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