在弹性搜索聚合中获取桶数

时间:2015-06-18 13:43:16

标签: elasticsearch

我正在使用elasticsearch来搜索具有大量重复项的数据库。 我正在使用现场倒塌并且它可以正常工作,但它会返回点击量(包括重复次数),而不是桶的数量。

"aggs": {
        "uniques": {
            "terms": {
                "field": "guid"
            },
            "aggs": {
                "jobs": { "top_hits": { "_source": "title", "size": 1 }}  
            }
        }
    }

我可以通过使用基数发出另一个请求来计算存储区(但它只返回计数,而不是文档):

{
    "aggs" : {
        "uniques" : {
            "cardinality" : {
                "field" : "guid"
            }
        }
    }
}

有没有办法在一次搜索中返回两个请求(存储桶+总存量计数)?

由于

1 个答案:

答案 0 :(得分:14)

您可以将这两种聚合合并为一个请求。

{
   "aggs" : {
    "uniques" : {
        "cardinality" : {
            "field" : "guid"
        }
    },
    "uniquesTerms": {
        "terms": {
            "field": "guid"
        },
        "aggs": {
            "jobs": { "top_hits": { "_source": "title", "size": 1 }}  
        }
    }
}