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

pei*_*rms 10 elasticsearch

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

"aggs": {
        "uniques": {
            "terms": {
                "field": "guid"
            },
            "aggs": {
                "jobs": { "top_hits": { "_source": "title", "size": 1 }}  
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

{
    "aggs" : {
        "uniques" : {
            "cardinality" : {
                "field" : "guid"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Rom*_*man 15

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

{
   "aggs" : {
    "uniques" : {
        "cardinality" : {
            "field" : "guid"
        }
    },
    "uniquesTerms": {
        "terms": {
            "field": "guid"
        },
        "aggs": {
            "jobs": { "top_hits": { "_source": "title", "size": 1 }}  
        }
    }
}
Run Code Online (Sandbox Code Playgroud)