2016-02-26 33 views
0

我的ES文件看起來是這樣的:Elasticsearch查詢 「OR但不是所有的」

Data Sample

其中ResponseQ1,ResponseQ2和ResponseCompleted是整數,其餘的字符串文本。

我需要創建一個查詢與其中1或2(但是,並非所有3)子條件被滿足以下條件:

  1. ResponseQ1:0
  2. ResponseQ2:0
  3. ResponseQ3: 「跳過」

做一個布爾查詢與「應該」可以很容易地讓我簡單或在子條件的1,2或3得到滿足的關係,但我根本無法弄清楚如何履行「,而不是全部3個子公司揚長避短」。

真的很感謝這方面的一些指導,謝謝。

我正在使用ElasticSearch 2.2通過Kibana 4.4.1運行我的查詢。

+0

嘗試使用查詢字符串的查詢功能https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html –

回答

2

我會建議下面的querystring query

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

+0

(ResponseQ1:0或ResponseQ2:0或ResponseQ3:「跳過」)AND NOT(ResponseQ1:0 AND ResponseQ2:0 AND ResponseQ3:「跳過」) - 謝謝,這似乎工作。我正在做一些額外的驗證。 – feicipet

+0

你不需要指定'AND NOT',因爲'NOT'本身意味着你打算請求的東西。很高興它幫助:) –