ruby-on-rails - Elasticsearch – 将 ids 查询与 must_not 子句结合起来

标签 ruby-on-rails ruby elasticsearch tire retire

我想将 ids 查询与 must_not 子句结合起来。我在 Rails 应用程序中使用(重新)轮胎 gem。

我正在做这样的事情:

query do
  ids ["foo", "bar", "test"]
end

哪个有效。但是,当我尝试将它与 must_not 子句结合使用时,我遇到了错误 – must_not 仅适用于 boolean 范围,它确实不包括 ids 查询。有什么方法可以合并这两个查询吗?

最佳答案

您需要使用的 ES 查询是这个:

GET /some_index/some_type/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "ids": {
            "values": ["foo", "bar", "test"]
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "name": "whatever"
          }
        }
      ]
    }
  }
}

因此,您需要 bool 范围,must 与您的 idsmust_not 与您的 must not match 查询。

关于ruby-on-rails - Elasticsearch – 将 ids 查询与 must_not 子句结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26607518/

相关文章:

java - 创建索引请求映射在 Elasticsearch 中失败

ruby-on-rails - Rails 将参数传递给新操作

javascript - 测试 Jasmine 中选择器的存在

ruby-on-rails - 验证两个表的唯一性

ruby-on-rails - 如何检查哪个 Controller 用于在 Rails 中呈现部分?

ruby - XIRR 实现的 bigdecimal/newton 错误

ruby - 使用 rvm 安装 ruby​​ 头文件

java - 如何使用 PBKDF2 在 Java 和 Ruby 中生成相同的安全哈希

elasticsearch - 在Elasticsearch中用单词替换特定字符

sorting - 是否可以在 Elasticsearch 中按范围排序?