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

标签 ruby-on-rails elasticsearch elasticsearch-rails

这是我想使用 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" }
            }
        }
    }
}

最佳答案

根据 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 将被弃用 is now deprecated 在 ES 2.0 中,建议在您的查询中简单地设置 size: 0 ,如上所述。这样做将使您符合 ES 2.0 标准……至少对于该查询而言,即 :)

关于ruby-on-rails - 如何在 elasticsearch-rails 中将 "search_type"设置为 "count"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32041000/

相关文章:

ruby - 将Rails应用程序连接到Elasticsearch服务器

ruby - Ruby On Rails 中的 Elasticsearch 从 0.90 升级到 2.x

ruby-on-rails - 响应式 bootstrap-sass 设置

ruby-on-rails - 使用 RSpec 构建 TDD/BDD 帮助

elasticsearch - 为每个过滤后的Elasticsearch文档运行一个子查询

elasticsearch - Elasticsearch匹配类型数组字段中的确切单词

python - 使用 Bulk-API 使用 Elasticsearch-py 将时间戳添加到 ElasticSearch

elasticsearch - Elastic Search Rails查找ID为部分的记录

android - 使用 Ruby 向 Firebase 发送通知

ruby-on-rails - Rails 应用程序到引擎