聚合0计数弹性搜索

Com*_*sty 6 aggregation elasticsearch

弹性索引(id,name,dept,status)中的文档集合为{1,pone,d1,m2} {2,ptwo,d1,m2},{3,ptwo,d2,m1}我想查询到通过dept获取结果组的'm2'状态.同样的结果集应包括零计数的记录为{d1:2},{d2:0}.我们如何使用Elastic Search aggs实现它?

 {
   "query": {
        "match": {
           "status": "m2"
        }
    },
    "aggs" : {
        "results" : {
            "terms" : {
               "field" : "dept"
            }
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

此查询返回'dept'而不计数为{d1:2}.此外,我还希望将0计数的记录设为{d1:2},{d2:0}.谢谢

Val*_*Val 14

您正在寻找的是min_doc_count设置.试试这个:

{
   "query": {
        "match": {
           "status": "m2"
        }
    },
    "aggs" : {
        "results" : {
            "terms" : {
               "field" : "dept",
               "min_doc_count" : 0      <------ add this setting
            }
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)