原文地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/query-dsl-exists-query.html, 原文档版权归 www.elastic.co 所有
IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Exists queryedit
Returns documents that contain an indexed value for a field.
An indexed value may not exist for a document’s field due to a variety of reasons:
-
The field in the source JSON is
nullor[] -
The field has
"index" : falseset in the mapping -
The length of the field value exceeded an
ignore_abovesetting in the mapping -
The field value was malformed and
ignore_malformedwas defined in the mapping
Example requestedit
GET /_search
{
"query": {
"exists": {
"field": "user"
}
}
}
Top-level parameters for existsedit
-
field -
(Required, string) Name of the field you wish to search.
While a field is deemed non-existent if the JSON value is
nullor[], these values will indicate the field does exist:-
Empty strings, such as
""or"-" -
Arrays containing
nulland another value, such as[null, "foo"] -
A custom
null-value, defined in field mapping
-
Empty strings, such as
Notesedit
Find documents missing indexed valuesedit
To find documents that are missing an indexed value for a field,
use the must_not boolean query with the exists
query.
The following search returns documents that are missing an indexed value for
the user field.
GET /_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "user"
}
}
}
}
}