2014-10-28 2 views
1

Я хотел бы объединить запрос ids с предложением must_not. Я использую (ре) жемчужину шины с применением рельсов.Elasticsearch - объединить запрос ids с обязательным предложением

Я делаю что-то вроде этого:

query do 
    ids ["foo", "bar", "test"] 
end 

, который работает. Однако, когда я пытаюсь объединить его с предложением must_not, я получаю ошибку - must_not работает только с boolean объемом, который не включает в себя запрос ids. Есть ли способ объединить эти два запроса?

ответ

4

ES запрос, который вам нужно использовать это один:

GET /some_index/some_type/_search 
{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "ids": { 
      "values": ["foo", "bar", "test"] 
      } 
     } 
     ], 
     "must_not": [ 
     { 
      "match": { 
      "name": "whatever" 
      } 
     } 
     ] 
    } 
    } 
} 

Итак, вам нужно булево области видимости must с вашим ids и must_not с не должны соответствовать запросам.