The Exists query helps you find documents that have a specific field filled in. It ignores documents where that field is missing.
Exists query in Elasticsearch
Introduction
Syntax
Elasticsearch
{
"query": {
"exists": {
"field": "your_field_name"
}
}
}Replace your_field_name with the exact name of the field you want to check.
This query returns documents where the field exists and is not null.
Examples
email field exists.Elasticsearch
{
"query": {
"exists": {
"field": "email"
}
}
}price field exists.Elasticsearch
{
"query": {
"exists": {
"field": "price"
}
}
}Sample Program
This query will return all documents that have a username field filled in.
Elasticsearch
{
"query": {
"exists": {
"field": "username"
}
}
}Important Notes
The exists query only checks if the field is present and not null.
If a field is an empty string or empty array, it still counts as existing.
Summary
The Exists query finds documents with a specific field present.
Use it to filter out documents missing important information.
It is simple and useful for many search filters.
Practice
1. What does the
exists query do in Elasticsearch?easy
Solution
Step 1: Understand the purpose of the exists query
The exists query checks if a field exists in documents, filtering those that have the field.Step 2: Compare options with the query's function
Only Finds documents where a specific field is present correctly describes this behavior; others describe different operations.Final Answer:
Finds documents where a specific field is present -> Option AQuick Check:
Exists query = finds documents with field [OK]
Hint: Exists query checks if a field is present in documents [OK]
Common Mistakes:
- Confusing exists query with term query
- Thinking it deletes or updates documents
- Assuming it checks field values
2. Which of the following is the correct syntax for an
exists query in Elasticsearch?easy
Solution
Step 1: Recall the correct JSON structure for exists query
The exists query requires a "field" key inside its object specifying the field name.Step 2: Match options to correct syntax
{"query": {"exists": {"field": "user"}}} matches the correct syntax: {"exists": {"field": "user"}}. Others use wrong keys or structure.Final Answer:
{"query": {"exists": {"field": "user"}}} -> Option DQuick Check:
Exists query syntax uses "field" key [OK]
Hint: Exists query needs "field" key inside its object [OK]
Common Mistakes:
- Using "value" or "field_name" instead of "field"
- Omitting the object braces around field
- Passing field as a string directly
3. Given the following Elasticsearch query, what documents will it return?
{"query": {"exists": {"field": "email"}}}medium
Solution
Step 1: Analyze the query structure
The query uses an exists query on the field "email", which filters documents having that field.Step 2: Understand what exists means for documents
Documents returned must have the "email" field present, regardless of its value.Final Answer:
Documents where the email field exists -> Option AQuick Check:
Exists query returns docs with field present [OK]
Hint: Exists query returns docs with the field present only [OK]
Common Mistakes:
- Thinking it returns docs missing the field
- Assuming empty fields are excluded
- Believing it returns all documents
4. Identify the error in this Elasticsearch exists query:
{"query": {"exists": {"field_name": "status"}}}medium
Solution
Step 1: Check the key used inside exists query
The exists query requires the key "field" to specify the field name.Step 2: Compare the given key with the correct one
The query uses "field_name" which is incorrect and causes an error.Final Answer:
The key should be "field", not "field_name" -> Option CQuick Check:
Exists query key = "field" [OK]
Hint: Use "field" key inside exists query, not "field_name" [OK]
Common Mistakes:
- Using incorrect key names inside exists query
- Confusing exists with match query
- Adding unnecessary wrappers
5. You want to find all documents where the field
phone exists but is not empty or null. Which Elasticsearch query best achieves this?hard
Solution
Step 1: Understand the requirement
We want documents where "phone" exists and is not empty or null.Step 2: Evaluate each option
{"query": {"exists": {"field": "phone"}}} only checks existence, not emptiness. {"query": {"bool": {"must": [{"exists": {"field": "phone"}}, {"term": {"phone": ""}}]}}} incorrectly requires phone to be empty. {"query": {"exists": {"field": "phone"}, "term": {"phone": ""}}} has invalid syntax combining exists and term at same level. {"query": {"bool": {"must": [{"exists": {"field": "phone"}}, {"script": {"script": "doc['phone'].value != ''"}}]}}} uses a bool must with exists and a script checking phone is not empty, correctly filtering as needed.Final Answer:
{"query": {"bool": {"must": [{"exists": {"field": "phone"}}, {"script": {"script": "doc['phone'].value != ''"}}]}}} -> Option BQuick Check:
Exists + script to exclude empty = {"query": {"bool": {"must": [{"exists": {"field": "phone"}}, {"script": {"script": "doc['phone'].value != ''"}}]}}} [OK]
Hint: Combine exists with script to exclude empty values [OK]
Common Mistakes:
- Using exists alone without checking empty values
- Incorrectly combining queries at same level
- Assuming term query with empty string works for exclusion
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
