弹性搜索以计算个别条款

时间:2017-09-01 13:51:30

标签: elasticsearch

我正在尝试使用_count运行弹性查询以获取计数。

    {
      "query": {
         "bool": {
           "must": [ {
                "term": {
                          "A": "image"
                        }
                     }, 
                     {
                "aggs" : {
                        "C" : {
                                "terms" : { "field" : "C" ,
                                "include" : ["X:969", "Y:96"]
                                          }
                              }
                         }                   
                     }
                   ]
                 }
              }
    }

现在我按预期得到了输出。

{
  "count": 321,
  "_shards": {
    "total": 19,
    "successful": 19,
    "failed": 0
  }
}

但是无论如何要获得像

这样的输出
  X:969 count 2
  Y:96  count 319

即使作为数组传递,也基本上寻找个别计数而不是总计数。

问候。

1 个答案:

答案 0 :(得分:0)

Count API只是Search API的一个子集,您需要使用terms aggregation来按字段获取计数。可能在Count API中不可能使用此聚合,因此您可以考虑针对_search

运行查询
{
    "aggs" : {
        "C" : {
            "terms" : { "field" : "C" }
        }
    }
}