有没有办法在聚合后撤回字段名称?

时间:2015-09-02 19:17:24

标签: elasticsearch aggregation

我正在使用弹性搜索1.5.2并且想知道是否有一种方法可以将字段名称添加到聚合本身名称以外的聚合返回中,以便age可以保持年龄而不是Customer.Age

{
    "aggregations": {
        "age": {
            "terms": {
                "field": "Customer.Age",
                "size": 10
            }
        }
    }
}

我希望返回看起来像这样

aggregations: {
    age: {
        doc_count_error_upper_bound: 0
        sum_other_doc_count: 0
        field: Customer.Age
        buckets: [6]
           0:  {
              key: "unknown"
              doc_count: 607103
           }            
    }

我目前得到的不包括字段。

1 个答案:

答案 0 :(得分:1)

目前无法实现(在2.0发布之前)。但是,由于聚合的名称基本上可以是任何内容,因此您可以在聚合名称中对聚合名称和字段进行编码,然后在客户端进行解析:

{
    "aggregations": {
        "age/Customer.Age": {
            "terms": {
                "field": "Customer.Age",
                "size": 10
            }
        }
    }
}

在v2.0中,可以指定将返回给用户的任意metadata

{
    "aggregations": {
        "age: {
            "terms": {
                "field": "Customer.Age",
                "size": 10
            },
            "meta": {
                "field": "Customer.Age"
            }
        }
    }
}