Bird
Raised Fist0
Elasticsearchquery~20 mins

Nested queries for nested objects in Elasticsearch - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Nested Query Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a nested query filtering by nested field
Given the following Elasticsearch nested query, what is the expected output when searching an index with documents containing nested 'comments' objects?

{
  "query": {
    "nested": {
      "path": "comments",
      "query": {
        "bool": {
          "must": [
            { "match": { "comments.author": "alice" } },
            { "range": { "comments.likes": { "gte": 10 } } }
          ]
        }
      }
    }
  }
}

Assuming the index has documents with nested comments by various authors with different likes, which option best describes the result?
ADocuments that have comments with author 'alice' and comments with likes >= 10, but not necessarily in the same comment.
BDocuments that have at least one comment by 'alice' with 10 or more likes.
CDocuments that have all comments by 'alice' with 10 or more likes.
DDocuments that have any comment by 'alice' or any comment with 10 or more likes.
Attempts:
2 left
💡 Hint
Remember that nested queries match nested objects individually, not across different nested objects.
🧠 Conceptual
intermediate
1:30remaining
Understanding the purpose of nested queries
Why do we use nested queries in Elasticsearch when dealing with nested objects instead of regular queries?
ABecause nested queries allow matching conditions on the same nested object, preserving object relationships.
BBecause nested queries improve performance by indexing nested objects separately.
CBecause nested queries automatically flatten nested objects into the root document.
DBecause nested queries are required to search any field in Elasticsearch.
Attempts:
2 left
💡 Hint
Think about how nested objects are stored and how queries match them.
🔧 Debug
advanced
2:00remaining
Identify the error in this nested query
What error will this Elasticsearch query produce?

{
  "query": {
    "nested": {
      "path": "comments",
      "query": {
        "match": {
          "author": "bob"
        }
      }
    }
  }
}

Assuming 'comments' is a nested field, what is wrong?
AIt will cause a type mismatch error because 'author' is not a string field.
BIt will run correctly and return documents with comments by 'bob'.
CIt will cause a syntax error due to missing closing braces.
DIt will cause a 'field [author] not found' error because the field path is incomplete inside nested query.
Attempts:
2 left
💡 Hint
Check the field name used inside the nested query's match clause.
📝 Syntax
advanced
2:00remaining
Correct syntax for nested query with inner hits
Which of the following nested queries correctly includes inner hits to return matching nested objects?
A{ "nested": { "path": "comments", "query": { "match": { "comments.text": "great" } }, "inner_hits": {} } }
B{ "nested": { "path": "comments", "inner_hits": {}, "query": { "match": { "comments.text": "great" } } } }
C{ "nested": { "query": { "match": { "comments.text": "great" } }, "path": "comments" } }
D{ "nested": { "path": "comments", "query": { "match": { "text": "great" } }, "inner_hits": {} } }
Attempts:
2 left
💡 Hint
Check the order and presence of required keys and correct field names.
🚀 Application
expert
3:00remaining
Construct a nested query to find documents with nested comments by 'eve' having likes between 5 and 15
You want to find documents where at least one nested comment has author 'eve' and likes between 5 and 15 inclusive. Which query correctly implements this?
A{ "query": { "nested": { "path": "comments", "query": { "match": { "comments.author": "eve" } }, "filter": { "range": { "comments.likes": { "gte": 5, "lte": 15 } } } } } }
B{ "query": { "bool": { "must": [ { "match": { "comments.author": "eve" } }, { "range": { "comments.likes": { "gte": 5, "lte": 15 } } } ] } } }
C{ "query": { "nested": { "path": "comments", "query": { "bool": { "must": [ { "match": { "comments.author": "eve" } }, { "range": { "comments.likes": { "gte": 5, "lte": 15 } } } ] } } } } }
D{ "query": { "nested": { "path": "comments", "query": { "bool": { "should": [ { "match": { "comments.author": "eve" } }, { "range": { "comments.likes": { "gte": 5, "lte": 15 } } } ] } } } } }
Attempts:
2 left
💡 Hint
Use a bool must inside nested query to combine conditions on the same nested object.

Practice

(1/5)
1. What is the main purpose of a nested query in Elasticsearch?
easy
A. To aggregate numeric values across documents
B. To search inside objects stored within other objects
C. To perform full-text search on string fields
D. To update documents in bulk

Solution

  1. Step 1: Understand nested objects

    Nested objects are objects stored inside other objects in Elasticsearch documents.
  2. Step 2: Purpose of nested query

    The nested query lets you search inside these nested objects specifically.
  3. Final Answer:

    To search inside objects stored within other objects -> Option B
  4. Quick Check:

    Nested query = search inside nested objects [OK]
Hint: Nested queries search inside nested objects only [OK]
Common Mistakes:
  • Confusing nested query with full-text search
  • Using nested query on non-nested fields
  • Thinking nested query updates documents
2. Which of the following is the correct syntax to specify the path in a nested query?
easy
A. "nested": { "path": "comments", "query": { ... } }
B. "nested": { "field": "comments", "query": { ... } }
C. "nested": { "location": "comments", "query": { ... } }
D. "nested": { "object": "comments", "query": { ... } }

Solution

  1. Step 1: Identify the correct key for nested path

    The nested query requires the key path to specify the nested object location.
  2. Step 2: Match syntax with options

    Only "nested": { "path": "comments", "query": { ... } } uses "path": "comments" correctly.
  3. Final Answer:

    "nested": { "path": "comments", "query": { ... } } -> Option A
  4. Quick Check:

    Nested query uses "path" key [OK]
Hint: Use "path" key to specify nested object location [OK]
Common Mistakes:
  • Using "field" instead of "path"
  • Using incorrect keys like "location" or "object"
  • Omitting the "path" key entirely
3. Given this nested mapping for comments and this query:
{
  "query": {
    "nested": {
      "path": "comments",
      "query": {
        "match": { "comments.message": "great" }
      }
    }
  }
}

What documents will this query return?
medium
A. Documents without any comments
B. Documents where all comments contain the word "great"
C. Documents with the word "great" anywhere in the document
D. Documents with at least one comment containing the word "great"

Solution

  1. Step 1: Understand nested query behavior

    The nested query matches documents where at least one nested object matches the query condition.
  2. Step 2: Analyze the match condition

    The query matches if any comment's message contains "great".
  3. Final Answer:

    Documents with at least one comment containing the word "great" -> Option D
  4. Quick Check:

    Nested query matches any nested object meeting condition [OK]
Hint: Nested query matches if any nested object matches [OK]
Common Mistakes:
  • Thinking all nested objects must match
  • Confusing nested query with top-level match
  • Ignoring the nested path requirement
4. Identify the error in this nested query:
{
  "query": {
    "nested": {
      "path": "comments",
      "query": {
        "match": { "message": "great" }
      }
    }
  }
}
medium
A. The field "message" should be prefixed with the nested path "comments.message"
B. The "path" key is missing
C. The nested query cannot use match queries
D. The query should be inside a bool query

Solution

  1. Step 1: Check field names in nested query

    Fields inside nested queries must be fully qualified with the nested path prefix.
  2. Step 2: Identify the missing prefix

    The query uses "message" instead of "comments.message" which is incorrect.
  3. Final Answer:

    The field "message" should be prefixed with the nested path "comments.message" -> Option A
  4. Quick Check:

    Nested query fields need full path prefix [OK]
Hint: Prefix nested fields with path in queries [OK]
Common Mistakes:
  • Omitting nested path prefix in field names
  • Assuming nested query disallows match queries
  • Forgetting to include the "path" key
5. You have documents with a nested field reviews containing rating and comment. You want to find documents with at least one review having rating >= 4 and comment containing "excellent". Which nested query correctly achieves this?
hard
A. { "bool": { "must": [ { "range": { "reviews.rating": { "gte": 4 } } }, { "match": { "reviews.comment": "excellent" } } ] } }
B. { "nested": { "path": "reviews", "query": { "match": { "reviews.comment": "excellent" } } } }
C. { "nested": { "path": "reviews", "query": { "bool": { "must": [ { "range": { "reviews.rating": { "gte": 4 } } }, { "match": { "reviews.comment": "excellent" } } ] } } } }
D. { "nested": { "path": "reviews", "query": { "range": { "reviews.rating": { "gte": 4 } } } } }

Solution

  1. Step 1: Combine conditions inside nested query

    Both rating and comment conditions must be inside the nested query to match the same nested object.
  2. Step 2: Use bool must to combine conditions

    Use a bool query with must array to require both conditions.
  3. Step 3: Verify field names and structure

    { "nested": { "path": "reviews", "query": { "bool": { "must": [ { "range": { "reviews.rating": { "gte": 4 } } }, { "match": { "reviews.comment": "excellent" } } ] } } } } correctly uses "reviews.rating" and "reviews.comment" inside nested query with bool must.
  4. Final Answer:

    { "nested": { "path": "reviews", "query": { "bool": { "must": [ { "range": { "reviews.rating": { "gte": 4 } } }, { "match": { "reviews.comment": "excellent" } } ] } } } } -> Option C
  5. Quick Check:

    Combine conditions inside nested bool query [OK]
Hint: Use bool must inside nested query to combine conditions [OK]
Common Mistakes:
  • Putting conditions outside nested query
  • Using only one condition inside nested query
  • Not prefixing fields with nested path
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard