2016-06-28 4 views
0

私はESを使用してフィールドに基づいて結果を集計しています。さらに、私は各集約バケットに入ったレコードの_idも検索したいと思います。出来ますか ?例えばエラスティックサーチで集計レコードの_idフィールドを取得する

:次のクエリ

{ 
    "aggs" : { 
     "genders" : { 
      "terms" : { "field" : "gender" } 
     } 
    } 
} 

のために応答が今、この

{ 
    ... 

    "aggregations" : { 
     "genders" : { 
      "doc_count_error_upper_bound": 0, 
      "sum_other_doc_count": 0, 
      "buckets" : [ 
       { 
        "key" : "male", 
        "doc_count" : 14 
       }, 
       { 
        "key" : "female", 
        "doc_count" : 14 
       }, 
      ] 
     } 
    } 
} 

ようになり、ここで私が作るすべての14の男性と14女性のレコードの_idをしたいですアグリゲーションをアップしてください。

なぜそれが必要でしょうか?

これらのレコードの後処理が必要なので、性別に基づいてレコードに新しいフィールドを挿入する必要があるとします。もちろん、それほど些細なことではありませんが、私の使用事例はその行に何かあります。

ありがとうございます!

答えて

2

私はIDバケットを取得していない

{ 
    "aggs" : { 
     "genders" : { 
      "terms" : { "field" : "gender" } 
     }, 
     "aggs": { 
      "ids":{ 
       "terms" : {"field" : "_uid"} 
      } 
     } 
    } 
} 
+0

のようなネストされた集約何かを作成します。私は_idをフィールドとして扱わないと思う。 – OneMoreError

+0

'_uid'やインデックス' _id'フィールドを使用する必要があるようです。 https://github.com/elastic/elasticsearch/issues/9298を確認してください。 – Deadlock

+0

素晴らしいです。できます。私が受け入れるようにあなたの答えを編集してください。 – OneMoreError

関連する問題