3

次のようなelasticsearch(1.5)のドキュメントがあります。

{
    "gender": [
        {
            "name": "unknown",
            "value": 12
        },
        {
            "name": "male",
            "value": 89
        },
        {
            "name": "female",
            "value": 84
        } 
    ]
}
  • すべてのドキュメントに 3 つのオプション (男性/女性/不明) が含まれているわけではありません。

性別名ごとにすべての値の合計を取得したいと思います。そのように:

{
    "buckets": [
        {
            "key": "unknown",
            "doc_count": 112,
            "gender_a": {
                "value": 462
            }
        },
        {
            "key": "male",
            "doc_count": 107,
            "gender_a": {
                "value": 438
            }
        },
        {
            "key": "female",
            "doc_count": 36,
            "gender_a": {
                "value": 186
            }
        }
    ]
}

私はこのクエリを試しました:

{
    "aggs": {
        "gender_name": {
            "terms": {
                "field": "gender.name"
            },
            "aggs": {
                "gender_sum": {
                    "sum": {
                        "field": "gender.value"
                    }
                }
            }
        }
    }
}

しかし、何か奇妙なことが起こっていて、正しい値が得られません。

私が欠けているものは何ですか?

4

1 に答える 1