Understanding Why Relevance Scoring Ranks Results in Elasticsearch
📖 Scenario: You are building a simple search feature for a small online bookstore. You want to understand how Elasticsearch ranks search results based on relevance scoring.
🎯 Goal: Learn how Elasticsearch uses relevance scoring to rank search results by creating a small index, adding documents, configuring a search query, and observing how scores affect the order of results.
📋 What You'll Learn
Create an Elasticsearch index called books with fields title and description
Add three book documents with exact titles and descriptions
Configure a search query that searches the title field for the word adventure
Observe and understand how Elasticsearch ranks the results by their relevance scores
💡 Why This Matters
🌍 Real World
Search engines use relevance scoring to show the most useful results first, improving user experience.
💼 Career
Understanding relevance scoring is important for roles involving search engine optimization, data engineering, and backend development.
Progress0 / 4 steps
1
Create the books index with title and description fields
Create an Elasticsearch index called books with two text fields: title and description. Use the standard analyzer for both fields.
Elasticsearch
Hint
Use the PUT method to create the index and define the mappings with title and description as text fields.
2
Add three book documents to the books index
Add these three documents to the books index with exact title and description values:
1. Title: "The Great Adventure", Description: "An exciting journey through unknown lands."
2. Title: "Adventure in the Mountains", Description: "A thrilling tale of mountain climbing."
3. Title: "Cooking Basics", Description: "Learn the essentials of cooking delicious meals."
Elasticsearch
Hint
Use PUT /books/_doc/1, _doc/2, and _doc/3 to add each document with the exact titles and descriptions.
3
Create a search query to find books with adventure in the title
Write a search query using the match query on the title field to find documents containing the word adventure.
Elasticsearch
Hint
Use a match query on the title field with the word adventure.
4
Observe how Elasticsearch ranks the results by relevance score
Add the explain parameter set to true in the search request to see how Elasticsearch calculates the relevance score for each result.
Elasticsearch
Hint
Add ?explain=true to the search URL to see detailed scoring explanations.
Practice
(1/5)
1. What does relevance scoring in Elasticsearch primarily determine?
easy
A. How well a document matches the search query
B. The size of the document
C. The date when the document was created
D. The number of fields in the document
Solution
Step 1: Understand relevance scoring purpose
Relevance scoring measures how closely a document matches the search query terms.
Step 2: Compare options to scoring concept
Only How well a document matches the search query relates to matching quality, others are unrelated to scoring.
Final Answer:
How well a document matches the search query -> Option A
Quick Check:
Relevance scoring = match quality [OK]
Hint: Relevance scoring ranks by match quality, not metadata [OK]
Common Mistakes:
Confusing scoring with document size
Thinking scoring depends on creation date
Assuming number of fields affects score
2. Which Elasticsearch query part directly influences relevance scoring?
easy
A. sort
B. match
C. filter
D. aggs
Solution
Step 1: Identify query parts affecting scoring
The match query scores documents based on how well they match the query text.
Step 2: Differentiate from other parts
filter and aggs do not affect scoring; sort orders results but doesn't calculate score.
Final Answer:
match -> Option B
Quick Check:
Match query = scoring influence [OK]
Hint: Match queries affect scoring; filters do not [OK]
Common Mistakes:
Thinking filters affect scoring
Confusing sort with scoring
Assuming aggregations influence score
3. Given this Elasticsearch query snippet, which document will rank higher?
{
"query": {
"match": {
"title": "apple"
}
}
}
Documents:
1. {"title": "apple pie recipe"}
2. {"title": "banana apple smoothie"}
3. {"title": "fruit salad"}
medium
A. Document 3
B. Document 2
C. Document 1
D. All have the same score
Solution
Step 1: Understand match query scoring
Documents containing the exact term "apple" in the title get higher scores. Document 1 has "apple" at the start and is more focused.
Step 2: Compare documents by term presence
Document 1 has "apple" prominently; Document 2 has "apple" but mixed with "banana"; Document 3 lacks "apple".
Final Answer:
Document 1 -> Option C
Quick Check:
Exact term presence = higher score [OK]
Hint: Exact term in title ranks higher than partial or missing [OK]
Common Mistakes:
Assuming all documents score equally
Choosing document without the term
Ignoring term position and frequency
4. You wrote this Elasticsearch query but results are not ranked by relevance:
C. The query must use "must_not" instead of "filter"
D. The field "content" does not exist
Solution
Step 1: Understand bool query filter behavior
The filter clause filters documents but does not affect relevance scoring.
Step 2: Identify why scoring is missing
Using filter with match disables scoring; to rank by relevance, use must instead.
Final Answer:
"filter" does not calculate relevance scores -> Option A
Quick Check:
Filter disables scoring, use must for relevance [OK]
Hint: Use must, not filter, for scoring queries [OK]
Common Mistakes:
Thinking filter affects scoring
Assuming match is misspelled
Ignoring bool query clause differences
5. You want to rank documents by relevance but also exclude those with "draft" status. Which query correctly ranks by relevance and filters out drafts?