Returns documents that have at least one non-null value in the original field:
GET /_search
{
    "query": {
        "exists" : { "field" : "user" }
    }
}
For instance, these documents would all match the above query:
| An empty string is a non- | |
| Even though the  | |
| At least one non- | 
These documents would not match the above query:
| This field has no values. | |
| At least one non- | |
| The  | 
null_value mappingeditIf the field mapping includes the null_value setting then explicit null values are replaced with the specified null_value. For instance, if the user field were mapped as follows:
PUT /example
{
  "mappings": {
    "doc": {
      "properties": {
        "user": {
          "type": "keyword",
          "null_value": "_null_"
        }
      }
    }
  }
}
then explicit null values would be indexed as the string _null_, and the following docs would match the exists filter:
{ "user": null }
{ "user": [null] }
However, these docs—without explicit null values—would still have no values in the user field and thus would not match the exists filter:
{ "user": [] }
{ "foo": "bar" }
missing queryeditThere isn’t a missing query. Instead use the exists query inside a must_not clause as follows:
GET /_search
{
    "query": {
        "bool": {
            "must_not": {
                "exists": {
                    "field": "user"
                }
            }
        }
    }
}
原文:https://www.cnblogs.com/tingtingbai/p/9717557.html