如何在elasticsearch-rails中将"search_type"设置为"count"?

Bai*_*ith 2 ruby-on-rails elasticsearch elasticsearch-rails

这是我想要使用elasticsearch-rails的查询.(该查询在Sense中工作).我的目标是返回所有具有名字以字母B开头的人的项目.我的第一个绊脚石是我无法弄清楚如何指定search_type应该设置为count.

GET _search?search_type=count
{    
    "query": {
        "prefix": {
           "person": "B"
        }
   },
    "aggs" : {
        "facets" : {
            "terms" : {
                "field" : "person",
                "size" : 0,
                "order" : { "_term" : "asc" }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Val*_*Val 8

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

另一种方法是size: 0在查询中设置,如下所示:

{    
    "size": 0,                    <--- add this
    "query": {
        "prefix": {
           "person": "B"
        }
   },
    "aggs" : {
        "facets" : {
            "terms" : {
                "field" : "person",
                "size" : 0,
                "order" : { "_term" : "asc" }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

值得注意的是,现在不search_type=count 推荐使用 已弃用的ES 2.0,建议只需size: 0在上面提到的查询中进行设置即可.这样做会使你符合ES 2.0标准......至少对于那个查询来说,就是:)