2014-02-26 129 views
9

我在ES集羣中有一堆用戶生成的事件。每個事件都包含用戶的UUID。如何在ElasticSearch 1.0的聚合範圍查詢中使用doc_count

我正試圖編寫一個查詢,根據每個用戶生成的事件數量將用戶分爲低,中和高活動。

我使用這個查詢來獲取每個用戶生成的事件數:

{ 
    "aggs" : { 
     "users" : { 
      "terms" : { "field" : "user_id.raw" } 
     } 
    } 
} 

這工作得很好,但我需要使用以前的結果的結果進一步水桶到一個範圍查詢「doc_count 「,以便我可以將每個用戶分類爲低,中等,高活動的存儲桶。

我嘗試了一堆使用子聚合訪問doc_count字段的方法,但從未設法使其工作。我想這將是一個相當常見的用例,但似乎無法破解它,所以任何幫助將不勝感激。

+2

是鬥範圍(低,中,高),相對於範圍在每個用戶的事件數,或者是他們固定的。 – Akshay

+0

桶已固定(至少現在)。所以低= 0-5,中= 5-10高= 10 + – whisperstream

+0

需要相同的功能,以便我可以在第二次聚合上分組相同的doc_count。 –

回答

0

你也許可以這樣做:

{ 
    "aggs" : { 
      "tally" : { 
       "sum" : { 
        "script": "1" 
       } 
      }, 
      "aggs" : { 
        //refer to tally here as the value would be same as doc_count 
      } 
    } 
} 
相關問題