IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Exists query
editExists query
editReturns 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 request
editresponse = client.search(
body: {
query: {
exists: {
field: 'user'
}
}
}
)
puts response
res, err := es.Search(
es.Search.WithBody(strings.NewReader(`{
"query": {
"exists": {
"field": "user"
}
}
}`)),
es.Search.WithPretty(),
)
fmt.Println(res, err)
GET /_search
{
"query": {
"exists": {
"field": "user"
}
}
}
Top-level parameters for exists
edit-
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
Notes
editFind documents missing indexed values
editTo 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.id field.
GET /_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "user.id"
}
}
}
}
}