2

这是我想使用 elasticsearch-rails 的查询。(查询在 Sense 中有效)。我的目标是返回名称以字母 B 开头的人的所有项目的存储桶。我的第一个绊脚石是我无法弄清楚如何指定 search_type 应该设置为计数。

GET _search?search_type=count
{    
    "query": {
        "prefix": {
           "person": "B"
        }
   },
    "aggs" : {
        "facets" : {
            "terms" : {
                "field" : "person",
                "size" : 0,
                "order" : { "_term" : "asc" }
            }
        }
    }
}
4

1 回答 1

10

根据这个问题,这似乎还不支持。

另一种可行的方法是简单地size: 0在您的查询中设置,如下所示:

{    
    "size": 0,                    <--- add this
    "query": {
        "prefix": {
           "person": "B"
        }
   },
    "aggs" : {
        "facets" : {
            "terms" : {
                "field" : "person",
                "size" : 0,
                "order" : { "_term" : "asc" }
            }
        }
    }
}

不过,值得注意的是,search_type=count 将被弃用 的内容现在在 ES 2.0 中被弃用,建议将简单地设置size: 0在您的查询中,如上所述。这样做会使您符合 ES 2.0... 至少对于该查询,即 :)

于 2015-08-17T03:49:49.427 回答