Подтвердить что ты не робот

Использование отсутствующего и существующего фильтра вместе в одном запросе

Я пытаюсь получить запрос, который может вернуть json, который удовлетворяет обоим условиям фильтрации. Я пытаюсь получить ответ, в котором есть фид, содержащий одно поле с именем "test1", и также должно отсутствовать поле "test2", Ive попробовал запрос

{
 "query": {
  "filtered": {
  "query": {
    "match_all": {}
   },
      "filter": {
         "missing": {
        "field": "test2"
       },
       "exists": {
         "field": "test1"
       }
      }
    }
  } 
}

Вышеприведенный запрос возвращает все поля, которые имеют поле "test1", а также возвращает фиды, в которых отсутствует поле "test2". Я пытаюсь сузить ответ, поскольку мне нужны только те каналы, которые удовлетворяют обоим условиям.

4b9b3361

Ответ 1

Вы можете комбинировать два или более фильтра, используя bool filter:

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "bool": {
          "must": [{
            "missing": {
              "field": "test2"
            }
          }, {
            "exists": {
              "field": "test1"
            }
          }]
        }
      }
    }
  }
}