【问题标题】:Elasticsearch query for "OR but not ALL"“OR 但不是全部”的 Elasticsearch 查询
【发布时间】:2016-02-26 13:41:55
【问题描述】:

我的 ES 文档如下所示:

其中 ResponseQ1、ResponseQ2 和 ResponseCompleted 为整数,其余为字符串文本。

我需要使用满足 1 或 2(但不是全部 3)子条件的条件创建查询:

  1. 响应Q1:0
  2. 响应Q2:0
  3. ResponseQ3:“已跳过”

使用“应该”进行布尔查询可以很容易地得到一个简单的 OR 关系,其中满足 1、2 或 3 个子条件,但我根本无法弄清楚如何满足“但不是所有 3 个子条件”。

非常感谢您对此的一些指导,谢谢。

我正在使用 ElasticSearch 2.2 通过 Kibana 4.4.1 运行我的查询。

【问题讨论】:

标签: elasticsearch kibana kibana-4


【解决方案1】:

我会建议下面的querystring query

(ResponseQ1:0 OR ResponseQ2:0 OR ResponseQ3:"skipped) NOT (ResponseQ1:0 AND Response Q2:0 AND ResponseQ3:"skipped")

【讨论】:

  • (ResponseQ1:0 OR ResponseQ2:0 OR ResponseQ3:"skipped") AND NOT (ResponseQ1:0 AND ResponseQ2:0 AND ResponseQ3:"skipped") - 谢谢,这似乎有效。我现在正在做一些额外的验证。
  • 您不需要指定AND NOT,因为NOT 本身就是您要请求的内容。很高兴它有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多