在弹性搜索中获取聚合记录的_id字段

时间:2016-06-28 17:42:29

标签: elasticsearch

我正在使用ES根据字段聚合结果。除此之外,我还想检索进入每个聚合桶的记录的_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。

为什么我需要那个?

说,因为我需要对这些记录进行一些后期处理,即根据性别在这些记录中插入一个新字段。当然,它并不像那样微不足道,但我的用例就是这样的。

提前致谢!

1 个答案:

答案 0 :(得分:5)

创建类似

的嵌套聚合
{
    "aggs" : {
        "genders" : {
            "terms" : { "field" : "gender" }
        },
        "aggs": {
            "ids":{
                "terms" : {"field" : "_uid"}
            }
        }
    }
}