Запрос Exists
Возвращает документы, содержащие индексированное значение для поля.
Индексированное значение может отсутствовать для поля документа по различным причинам:
- Поле в исходном JSON-объекте является
nullили[] - Для поля установлено значение
"index" : falseв схеме - Длина значения поля превышает установленное значение
ignore_aboveв схеме - Значение поля имело неправильный формат и
ignore_malformedбыло определено в схеме
Пример запроса
GET /_search
{
"query": {
"exists": {
"field": "user"
}
}
} Параметры верхнего уровня для запроса exists
-
field -
(Обязательно, строка) Имя поля, которое требуется искать.
Хотя поле считается несуществующим, если значение JSON является
nullили[], эти значения будут указывать на то, что поле существует:- Пустые строки, такие как
""или"-" - Массивы, содержащие
nullи другое значение, например,[null, "foo"] - Специальное значение
null-value, определённое в схеме поля
- Пустые строки, такие как
Примечания
Поиск документов с отсутствующими индексированными значениями
Чтобы найти документы, для которых отсутствует индексированное значение поля, используйте запрос must_not логического запроса с запросом exists.
Следующий запрос возвращает документы, в которых отсутствует индексированное значение для поля user.id.
GET /_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "user.id"
}
}
}
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/query-dsl-exists-query.html