2015-04-03 2 views
2

У меня есть индекс users с user типа. Отображение является динамическим. Для теперь user ГВ следующей структуры:Как найти все документы в elasticsearch, соответствующие полям и значениям?

"user": { 
     "nested": { 
      "one":51 
     }, 
     "other": { 
      "two":"hi!" 
     }, 
     "three":false 
    } 

Мне нужно найти все пользователь, которые имеют other.two поле со значением hi или имеют three поле со значением false. Например. пользователь, который имеет other.two, должен иметь значение hi или three поле со значением false. Как выбрать это из эластичного поиска?

Я попытался:

GET /users/user/_search 
{"query": {"match": {"other.two": "hi"}}} 

Возвращает пользователя для меня, но

GET /users/user/_search 
    {"query": {"match": {"other.two": "hi", "three":false}}} 

Возвращает мне SearchPhaseExecutionException.

Как скомбинировать несколько полей и значений для поиска?

ответ

2

Как @rvheddeg говорилось выше, здесь запрос, который работает для меня:

{ 
"query": { 
    "bool": { 
     "should": [ 
       { "match": { "other.two": "hi" }}, 
       { "match": { "three": false }} 
      ], 
      "minimum_should_match": 1 
     } 
    } 
} 
Смежные вопросы