2017-08-21 122 views
0

我想使用多必須查詢,但我得到以下錯誤。 重複鍵「必須」語法錯誤。 結果應該是fanta和可樂。 如何獲取這些數據?ES多個必須查詢

必須如以下結果: 1:可口可樂 2:芬達

{ 
    "query": { 
     "bool": { 
     "must": [ 
      { 
       "match": { 
        "productName":"Coca Cola" 
       } 
       }, 
       { 
       "match": { 
        "productCode": "Coke" 
       } 
       }, 
       { 
       "match": { 
        "created_date": "2018-06-10" 
       } 
       } 
     ], 
     "must": [ 
      { 
       "match": { 
        "productName":"Fanta" 
       } 
       }, 
       { 
       "match": { 
        "productCode": "Coke" 
       } 
       }, 
       { 
       "match": { 
        "created_date": "2018-06-05" 
       } 
       } 
     ] 
     } 
    } 
    } 

在MySQL:

SELECT * FROM產品WHERE(名稱= '可口可樂' 和碼='可樂」 ...)或(NAME = '芬達' ...)

回答

2

你需要用一個should(即或兩者must(即AND))是這樣的:

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "bool": { 
      "must": [ 
       { 
       "match": { 
        "productName": "Coca Cola" 
       } 
       }, 
       { 
       "match": { 
        "productCode": "Coke" 
       } 
       }, 
       { 
       "match": { 
        "created_date": "2018-06-10" 
       } 
       } 
      ] 
      } 
     }, 
     { 
      "bool": { 
      "must": [ 
       { 
       "match": { 
        "productName": "Fanta" 
       } 
       }, 
       { 
       "match": { 
        "productCode": "Coke" 
       } 
       }, 
       { 
       "match": { 
        "created_date": "2018-06-05" 
       } 
       } 
      ] 
      } 
     } 
     ] 
    } 
    } 
} 
+0

謝謝瓦爾:)你是超人:)) – ercvs

+0

很高興幫助! – Val

相關問題