Elasticsearch Elasticsearch field is not empty

By Opster Team

Updated: Jun 13, 2023

| 1 min read

Elasticsearch: Querying for Non-Empty Fields

When working with Elasticsearch, there might be situations where you need to query documents based on the presence of a non-empty field. This article will guide you through the process of querying Elasticsearch for documents where a specific field is not empty.

Using the `exists` Query

The `exists` query can be used to find documents where a field exists and contains a non-null value. The basic syntax for the `exists` query is as follows:

{
  "query": {
    "exists": {
      "field": "your_field_name"
    }
  }
}

Replace `your_field_name` with the name of the field you want to check for non-empty values. Here’s an example that demonstrates how to use the `exists` query to find documents where the `email` field is not empty:

{
  "query": {
    "exists": {
      "field": "email"
    }
  }
}

Using the `bool` Query with `must_not` and `missing`

Another approach to find documents with non-empty fields is to use the `bool` query in combination with `must_not` and the `missing` query. The `missing` query is deprecated in Elasticsearch 5.x and removed in Elasticsearch 6.x, so this method is only applicable for Elasticsearch versions below 5.x.

The basic syntax for the `bool` query with `must_not` and `missing` is as follows:

{
  "query": {
    "bool": {
      "must_not": {
        "missing": {
          "field": "your_field_name"
        }
      }
    }
  }
}

Replace `your_field_name` with the name of the field you want to check for non-empty values. Here’s an example that demonstrates how to use the `bool` query with `must_not` and `missing` to find documents where the `email` field is not empty:

{
  "query": {
    "bool": {
      "must_not": {
        "missing": {
          "field": "email"
        }
      }
    }
  }
}

Keep in mind that this method is not recommended for Elasticsearch 5.x and later versions, as the `missing` query is deprecated and removed in those versions.

In conclusion

the `exists` query is the preferred method for querying documents with non-empty fields in Elasticsearch. The `bool` query with `must_not` and `missing` can be used for older Elasticsearch versions, but it is not recommended for newer versions due to the deprecation and removal of the `missing` query.


Opster
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.