2017-10-11 108 views
1

我試圖在elasticsearch中運行此查詢。我試圖在我的桶上運行一個自定義的scripted_metric聚合。在度量腳本中,我想訪問它所聚合的存儲桶密鑰。ElasticSearch:獲取存儲桶中的存儲桶密鑰scripted_metric

我在ES的文檔看起來像這樣。

{ 
    user_id: 5, 
    data: { 
     5: 200, 
     8: 300 
    } 
}, 
{ 
    user_id: 8, 
    data: { 
     5: 889, 
     8: 22 
    } 
} 

我的聚集查詢看起來是這樣的:

aggs = { 
    approvers: { 
     terms: { 
      field: 'user_id' 
     }, 
     aggs: { 
      new_metric: { 
       scripted_metric: { 
        map_script: ` 
         // IS IT POSSIBLE TO GET THE BUCKET KEY HERE? 
         // The bucket key here would be the user_id 
         // so i can do stuff like 

         doc['data'][**_term**].... 
        ` 
       } 
      } 
     } 
} 
+0

你有沒有解決這個問題:也許這可以讓你在解決問題的方向開始了嗎? – Miek

回答

0

我不得不做一些挖掘,並可能有你在尋找一個解決方案,如何檢索父值同樣的困難...我唯一能找到的就是關於子agg的特殊「_count」值,但沒有與其父桶名稱/鍵相關。

如果使用具有scripted_metric的子級agg不是一個嚴格的要求,我可以找到一種方法,允許您至少訪問父級內的存儲區密鑰。

aggs = { 
    approvers: { 
     terms: { 
      field: 'user_id', 
      script: '"There seems to be a magic value here: " + _value' 
     } 
} 

樣品改編自this