2014-01-20 71 views
2

我想在具有3個子條件的彈性搜索中構建查詢。 1.它必須至少滿足提供值列表中的一個。 2.在1之後,2必須滿足,然後第三個條件。針對多個條件的彈性搜索查詢

(1必須滿足,2和3也必須滿足,但只有滿足1後)。 1是值的列表,所以任何滿足的人都可以。

請詳細說明如何使用布爾參數來構建彈性搜索查詢。

在此先感謝。

+0

你嘗試'bool'查詢匹配嗎? –

+0

我已經使用minimumShouldMatch完成了它。我使用bool查詢作爲第一個條件應該和剩下的兩個條件。並且將minimumShouldMatchParamater設置爲1,以確保一個條款必須匹配。而且由於剩下的兩個是必須的條款,所以他們也必須滿意。還有其他的方法嗎? – user3152555

回答

0
{ 
    "query" : { 
     "filtered" : { 
     "filter" : { 
      "bool" : { 
      "must" :[{"term":{"sessionId":"-ShAwL2KlnVeo6nMMNX3ycVlc0kdikOWPC8vShyvpRpdmOQJkbBo-FiLJymsuZp36gcQs1I"}}], 
       "should" : [ 
       { "term" : {"visitorId": "b090606f-968d-fef4-33e3-3341f3a04265"}}, 
       { "term" : {"clientIp": "192.168.8.100"}} 
       ] 

      } 
     } 
     } 
    } 
} 

在必須在規定的條款,單據必須在標準 在應在規定的條款,任何術語可以匹配