Bird
Raised Fist0
Elasticsearchquery~10 mins

Highlighting matched text in Elasticsearch - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to specify the field to highlight in an Elasticsearch query.

Elasticsearch
{
  "query": {
    "match": {
      "content": "search text"
    }
  },
  "highlight": {
    "fields": {
      "[1]": {}
    }
  }
}
Drag options to blanks, or click blank then click option'
Acontent
Btitle
Cauthor
Ddate
Attempts:
3 left
💡 Hint
Common Mistakes
Using a field name different from the one in the query.
Forgetting to specify the field inside the highlight fields.
2fill in blank
medium

Complete the code to set the pre-tags for highlighted text in Elasticsearch.

Elasticsearch
{
  "highlight": {
    "pre_tags": ["[1]"],
    "post_tags": ["</em>"],
    "fields": {
      "content": {}
    }
  }
}
Drag options to blanks, or click blank then click option'
A<strong>
B<b>
C<mark>
D<em>
Attempts:
3 left
💡 Hint
Common Mistakes
Using tags that do not match the post-tags.
Using tags that are not valid HTML tags.
3fill in blank
hard

Fix the error in the highlight section to correctly specify multiple fields to highlight.

Elasticsearch
{
  "highlight": {
    "fields": {
      "title": {},
      "[1]": {}
    }
  }
}
Drag options to blanks, or click blank then click option'
Acontent
Bhighlight
Cmatch
Dfields
Attempts:
3 left
💡 Hint
Common Mistakes
Using reserved keywords like fields or match as field names.
Using invalid field names that do not exist in the index.
4fill in blank
hard

Fill both blanks to highlight the field and set the fragment size in Elasticsearch.

Elasticsearch
{
  "highlight": {
    "fields": {
      "[1]": {
        "fragment_size": [2]
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
Acontent
Btitle
C150
D50
Attempts:
3 left
💡 Hint
Common Mistakes
Setting fragment_size to a string instead of a number.
Using a field name that does not match the query.
5fill in blank
hard

Fill all three blanks to highlight a field with custom tags and number of fragments.

Elasticsearch
{
  "highlight": {
    "pre_tags": ["[1]"],
    "post_tags": ["[2]"],
    "fields": {
      "content": {
        "number_of_fragments": [3]
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
A<em>
B</em>
C3
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching pre and post tags.
Using a string instead of a number for number_of_fragments.

Practice

(1/5)
1. What is the main purpose of the highlight section in an Elasticsearch query?
easy
A. To filter documents before searching
B. To sort the search results by relevance
C. To update documents in the index
D. To show matched words clearly in search results

Solution

  1. Step 1: Understand the role of highlighting

    Highlighting is used to emphasize matched words in search results so users can see why a document matched.
  2. Step 2: Compare with other query parts

    Sorting, filtering, and updating are different functions not related to highlighting matched text.
  3. Final Answer:

    To show matched words clearly in search results -> Option D
  4. Quick Check:

    Highlight = show matched words [OK]
Hint: Highlight section shows matched words in results [OK]
Common Mistakes:
  • Confusing highlight with sorting or filtering
  • Thinking highlight updates documents
  • Assuming highlight changes search relevance
2. Which of the following is the correct syntax to add highlighting for the field content in an Elasticsearch query?
easy
A. "highlight": {"fields": {"content": {}}}
B. "highlight": {"field": "content"}
C. "highlight": {"content": {"fields": {}}}
D. "highlight": {"fields": ["content"]}

Solution

  1. Step 1: Recall correct highlight syntax

    The correct syntax uses "highlight" with "fields" as an object mapping field names to options, like {"content": {}}.
  2. Step 2: Check each option

    "highlight": {"fields": {"content": {}}} matches the correct structure. Options B, C, and D use incorrect keys or data types.
  3. Final Answer:

    "highlight": {"fields": {"content": {}}} -> Option A
  4. Quick Check:

    Highlight fields syntax = "highlight": {"fields": {"content": {}}} [OK]
Hint: Use "highlight": {"fields": {"fieldname": {}}} [OK]
Common Mistakes:
  • Using "field" instead of "fields"
  • Putting fields inside an array instead of object
  • Misplacing keys inside highlight
3. Given this Elasticsearch query snippet, what will the highlight section return for a match in the title field?
{
  "query": {"match": {"title": "quick fox"}},
  "highlight": {"fields": {"title": {}}}
}
medium
A. An error because highlight requires custom tags
B. Only the word "quick" highlighted, "fox" ignored
C. The matched words "quick" and "fox" wrapped in default highlight tags
D. No highlighting because tags are missing

Solution

  1. Step 1: Understand default highlight behavior

    When highlight is enabled with empty options, Elasticsearch wraps matched words with default tags like <em> and </em>.
  2. Step 2: Analyze the query

    The query matches both "quick" and "fox" in the title, so both words will be highlighted.
  3. Final Answer:

    The matched words "quick" and "fox" wrapped in default highlight tags -> Option C
  4. Quick Check:

    Default highlight tags wrap matched words [OK]
Hint: Empty highlight options use default tags to wrap matches [OK]
Common Mistakes:
  • Thinking highlight needs custom tags to work
  • Assuming only first matched word is highlighted
  • Believing missing tags cause errors
4. Identify the error in this Elasticsearch highlight query snippet:
{
  "query": {"match": {"description": "fast car"}},
  "highlight": {"fields": ["description"]}
}
medium
A. "match" query is invalid for highlighting
B. "fields" should be an object, not an array
C. "highlight" must be inside "query"
D. "description" field cannot be highlighted

Solution

  1. Step 1: Check highlight fields syntax

    The "fields" key must be an object mapping field names to options, not an array.
  2. Step 2: Verify other parts

    "match" query is valid, "highlight" is correctly placed, and any field can be highlighted if indexed.
  3. Final Answer:

    "fields" should be an object, not an array -> Option B
  4. Quick Check:

    Highlight fields = object, not array [OK]
Hint: Highlight fields must be an object, not a list [OK]
Common Mistakes:
  • Using array instead of object for fields
  • Placing highlight inside query incorrectly
  • Assuming some fields can't be highlighted
5. You want to highlight matched text in both title and content fields with custom tags <strong> and </strong>. Which is the correct highlight section to achieve this?
hard
A. "highlight": {"fields": {"title": {}, "content": {}}, "pre_tags": [""], "post_tags": [""]}
B. "highlight": {"fields": ["title", "content"], "pre_tags": "", "post_tags": ""}
C. "highlight": {"fields": {"title": {"tags": ["", ""]}, "content": {"tags": ["", ""]}}}
D. "highlight": {"fields": {"title": {}, "content": {}}, "tags": ["", ""]}

Solution

  1. Step 1: Understand how to set custom tags

    Custom tags are set globally using "pre_tags" and "post_tags" arrays outside the fields object.
  2. Step 2: Check each option's structure

    "highlight": {"fields": {"title": {}, "content": {}}, "pre_tags": [""], "post_tags": [""]} correctly sets "fields" as an object and uses "pre_tags" and "post_tags" arrays. Options B, C, and D misuse keys or data types.
  3. Final Answer:

    "highlight": {"fields": {"title": {}, "content": {}}, "pre_tags": [""], "post_tags": [""]} -> Option A
  4. Quick Check:

    Custom tags use pre_tags/post_tags arrays [OK]
Hint: Use pre_tags/post_tags arrays for custom highlight tags [OK]
Common Mistakes:
  • Using arrays for fields instead of objects
  • Setting tags inside each field incorrectly
  • Using single strings instead of arrays for tags
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