Missing Queryedit
Deprecated in 2.2.0.
Use exists query inside a must_not clause instead.
Returns documents that have only null values or no value in the original field:
{
"constant_score" : {
"filter" : {
"missing" : { "field" : "user" }
}
}
}For instance, the following docs would match the above filter:
These documents would not match the above filter:
An empty string is a non- | |
Even though the | |
This field has one non- |
null_value mappingedit
If the field mapping includes a null_value then explicit null values
are replaced with the specified null_value. For instance, if the user field were mapped
as follows:
"user": {
"type": "string",
"null_value": "_null_"
}then explicit null values would be indexed as the string _null_, and the
the following docs would not match the missing filter:
{ "user": null }
{ "user": [null] }However, these docs—without explicit null values—would still have
no values in the user field and thus would match the missing filter:
{ "user": [] }
{ "foo": "bar" }existence and null_value parametersedit
When the field being queried has a null_value mapping, then the behaviour of
the missing filter can be altered with the existence and null_value
parameters:
{
"constant_score" : {
"filter" : {
"missing" : {
"field" : "user",
"existence" : true,
"null_value" : false
}
}
}
}-
existence When the
existenceparameter is set totrue(the default), the missing filter will include documents where the field has no values, ie:{ "user": [] } { "foo": "bar" }When set to
false, these documents will not be included.-
null_value When the
null_valueparameter is set totrue, the missing filter will include documents where the field contains anullvalue, ie:When set to
false(the default), these documents will not be included.
Either existence or null_value or both must be set to true.