What if your search could instantly point out the exact words you care about, saving you hours of reading?
Why Highlighting matched text in Elasticsearch? - Purpose & Use Cases
Imagine you have a huge book and you want to find all sentences containing a specific word. You read page by page, line by line, trying to spot that word yourself.
This manual search is slow and tiring. You might miss some matches or lose track of where the word appeared. It's hard to quickly see the important parts without re-reading everything.
Highlighting matched text in Elasticsearch automatically finds and marks the exact words or phrases you searched for. It shows you the matches clearly, so you can jump straight to the important parts without extra effort.
{ "query": { "match": { "content": "apple" } } }{ "query": { "match": { "content": "apple" } }, "highlight": { "fields": { "content": {} } } }It lets you instantly see where your search terms appear, making data exploration faster and more intuitive.
When searching product reviews, highlighting shows exactly where customers mention "battery life" so you can quickly understand opinions without reading full reviews.
Manual searching is slow and error-prone.
Highlighting automatically marks matched words for easy spotting.
This improves speed and clarity when exploring search results.
Practice
highlight section in an Elasticsearch query?Solution
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.Step 2: Compare with other query parts
Sorting, filtering, and updating are different functions not related to highlighting matched text.Final Answer:
To show matched words clearly in search results -> Option DQuick Check:
Highlight = show matched words [OK]
- Confusing highlight with sorting or filtering
- Thinking highlight updates documents
- Assuming highlight changes search relevance
content in an Elasticsearch query?Solution
Step 1: Recall correct highlight syntax
The correct syntax uses "highlight" with "fields" as an object mapping field names to options, like {"content": {}}.Step 2: Check each option
"highlight": {"fields": {"content": {}}} matches the correct structure. Options B, C, and D use incorrect keys or data types.Final Answer:
"highlight": {"fields": {"content": {}}} -> Option AQuick Check:
Highlight fields syntax = "highlight": {"fields": {"content": {}}} [OK]
- Using "field" instead of "fields"
- Putting fields inside an array instead of object
- Misplacing keys inside highlight
highlight section return for a match in the title field?
{
"query": {"match": {"title": "quick fox"}},
"highlight": {"fields": {"title": {}}}
}Solution
Step 1: Understand default highlight behavior
When highlight is enabled with empty options, Elasticsearch wraps matched words with default tags like <em> and </em>.Step 2: Analyze the query
The query matches both "quick" and "fox" in the title, so both words will be highlighted.Final Answer:
The matched words "quick" and "fox" wrapped in default highlight tags -> Option CQuick Check:
Default highlight tags wrap matched words [OK]
- Thinking highlight needs custom tags to work
- Assuming only first matched word is highlighted
- Believing missing tags cause errors
{
"query": {"match": {"description": "fast car"}},
"highlight": {"fields": ["description"]}
}Solution
Step 1: Check highlight fields syntax
The "fields" key must be an object mapping field names to options, not an array.Step 2: Verify other parts
"match" query is valid, "highlight" is correctly placed, and any field can be highlighted if indexed.Final Answer:
"fields" should be an object, not an array -> Option BQuick Check:
Highlight fields = object, not array [OK]
- Using array instead of object for fields
- Placing highlight inside query incorrectly
- Assuming some fields can't be highlighted
title and content fields with custom tags <strong> and </strong>. Which is the correct highlight section to achieve this?Solution
Step 1: Understand how to set custom tags
Custom tags are set globally using "pre_tags" and "post_tags" arrays outside the fields object.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.Final Answer:
"highlight": {"fields": {"title": {}, "content": {}}, "pre_tags": [""], "post_tags": [""]} -> Option AQuick Check:
Custom tags use pre_tags/post_tags arrays [OK]
- Using arrays for fields instead of objects
- Setting tags inside each field incorrectly
- Using single strings instead of arrays for tags
Ready to prove it?
Pass the test and this pattern moves unknown
