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

How to set "search_type" to "count" in elasticsearch-rails?

这是我想要使用 elasticsearch-rails 的查询。 (查询在 Sense 中有效)。我的目标是 return 包含名字以字母 B 开头的人的项目的所有桶。我的第一个绊脚石是我不知道如何指定 search_type 应该是设置为计数。

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

根据 this issue,这似乎还不受支持。

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

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

值得注意的是,search_type=count 将在 ES 中被弃用 is now deprecated 2.0 和建议将是简单地设置 size: 0 在您的查询如上所述。这样做将使您符合 ES 2.0 标准……至少对于该查询而言,即 :)