2016-04-26 11 views
0

弾性ファイルのフィールドのキーを集計することはできますか?私はElastic aggregation documentationを読んでコーディングを試みましたが、成功しませんでした。Elasticで配列キーを集計する方法は?

既存の文書:凝集の

{ 
    "analysis": {   
     "v1": {"a":1, "b":2} 
    } 
}   


{ 
    "analysis": {   
     "v1": {"a":3, "b":4} 
    } 
}   


{ 
    "analysis": {   
     "v2": {"a":5, "b":6} 
    } 
}   


{ 
    "analysis": {   
     "v1": {"a":7, "b":8}, 
     "v2": {"a":9, "b":10}, 
    } 
}   

期待される成果のキーのカウントされます。

{ 
    "v1": 3, 
    "v2": 2 
} 

更新ソースJSON

+0

そのデータを持つフィールドのマッピングを共有できますか? –

+0

明確にするために、非リーフノードに集約することを意味しますか? – ystark

+0

現在、専用のマッピングはありません。ドキュメントは個別に挿入され、その他はすべて弾性マジックです。マッピングを行うべきですか?そして、はい、私は非リーフノードの(キー)名を集約したいと思います。ソースJSONを更新しました。 – Mike

答えて

1

はこれを試してみてください:

GET /your_index_name/your_type_name/_search 
{ 
    "size": 0, 
    "aggs": { 
    "v1": { 
     "filter": { 
     "exists": { 
      "field": "analysis.v1" 
     } 
     } 
    }, 
    "v2": { 
     "filter": { 
     "exists": { 
      "field": "analysis.v2" 
     } 
     } 
    } 
    } 
} 
+0

さて、私は手動で分析のすべての既存のバージョンを含める必要があります。多くのバージョン(v2_3_4など)が用意されているため完璧ではありませんが、それは良いスタートです。 – Mike

関連する問題