2016-06-08 72 views
0

在Elasticsearch文檔,它說「或查詢」已過時,使用「布爾」查詢,而不是:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-or-query.html如何在Elasticsearch中的「bool」查詢中創建邏輯「OR」?

但我不知道如何進行邏輯「或」使用「布爾」查詢。我想:

query: { 
    bool: { 
     must: [ 
      { match: { title: 'some title'}}, 
      { match: { author: 'some author'}} 
     ] 
    } 
} 

這標題是「一些標題」和作者是「一些作者的比賽,但我怎麼轉換到這一個或表達?就像我希望它匹配標題是'某個標題'或作者是'某個作者'。謝謝!

回答

4

只需更換您必須應該和添加操作:

query: { 
    bool: { 
     should: [ 
      { match: { title: {query:'some title', operator: 'AND'}}, 
      { match: { author: {query: 'some author', operator: 'AND'}} 
     ] 
    } 
} 
+0

你能解釋一下嗎?應該和AND運算符做什麼? – user3835653

+0

並用此添加「AND」,我使用「must」運算符?比如,如果我想要上面的邏輯,並且我想要其他邏輯,那麼我應該使用'must'和'should'嗎? – user3835653

+0

閱讀文檔可能很明智,他們很好地解釋了這一點。但運營商和手段都需要一些和標題目前。在OR中,只有其中一個需要在場。在沒有必要的情況下,至少有一個條件必須匹配。如果你想要另一個條件匹配,你可以添加一個必須。比你必須添加一個minimum_should_match到should部分。 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html –