Как я могу запросить документыasticsearch с точным соответствием field1 и непустым соответствием field2 - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть документы вasticsearch с field1, сопоставленным с целочисленным значением, и field2, сопоставленным с массивом.Я хотел бы создать запрос, чтобы найти все документы с field1 == 100 и field2 не пустыми.

Как мне написать такой запрос?

1 Ответ

0 голосов
/ 28 ноября 2018

Используйте термин запроса , чтобы сопоставить field1 со значением 100, и используйте существует запрос , чтобы проверить, существует ли field2 (не пусто).Оба вышеприведенных условия являются AND, поэтому включите их в must условие bool query .

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "field1": 100
          }
        },
        {
          "exists": {
            "field": "field2"
          }
        }
      ]
    }
  }
}

Обновление на основе комментария @Val:

{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "field1": 100
          }
        },
        {
          "exists": {
            "field": "field2"
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...