2016-03-04 97 views
0

我有一個查詢應該獲取與這些ID匹配的任何行。該查詢不返回任何內容,但應返回兩行。如果我刪除一個ID,我會返回一行。我假設它正在做一個AND而不是一個OR。我該如何改變這一點? (實際上,我還有更多的IDS查詢)Elasticsearch使用篩選器查詢ID布爾值或查詢

{ 
    "query": { 
    "bool": { 
     "filter": [ 
     { 
      "term": { 
      "_id": 1273359 
      } 
     }, 
     { 
      "term": { 
      "_id": 480421 
      } 
     } 
     ] 
    } 
    } 
} 

回答

1

嘗試ids filter,而不是

{ 
    "query": { 
    "bool": { 
     "filter": [ 
     { 
      "ids": { 
      "values": ["1273359", "480421"] 
      } 
     } 
     ] 
    } 
    } 
} 

注意,你本來還打算查詢「查找文件id爲1273359和1273359」,這是不可能在實踐中。用上面的查詢,你有一個OR而不是一個AND,它會起作用。