2017-10-11 13 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

から適応

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

サンプルあなたはこの問題を解決しましたか? – Miek

答えて

0

は、私はいくつかの掘削をしなければならなかったし、おそらくあなたは親の値を取得する方法についての解決策を見つけることにしたのと同じ困難を抱えていました...私が見つけることができる唯一の事は、子agg上の特別な "_count"値に関してでしたが、その親バケット名/キーには何も関係ありませんでした。

scripted_metricで子aggを使用することが厳しく要求されていない場合は、親の中のバケットキーに少なくともアクセスできる方法を見つけることができました。たぶん、このあなたが解決の方向に始めることができます。this

関連する問題