Article · Search scores
What does a search score mean?
A search score is the number a search engine uses to put results in order. It says one result ranks above another for this query, in this index, at this moment. It is not a percentage or a probability, and scores from two different searches cannot be compared.
In short
A search score is a number that puts results in order for one query: a higher score ranks first, and that is all it promises. It is not a grade, a percentage or the probability that a result is right.
Three words are often used as one. A rank is a place in the list: first, second, third. Relevance is whether a result answers what you need, and only a reader can judge it. A score sits between the two. It is the engine’s evidence for the rank, on a scale that belongs to one search.
How a score is made
Most scores are a sum of parts, each measured on its own scale. Our paper on search scores names five: search terms, text similarity, graph links, recency and boosts. Other engines use a similar set under other names.
Search terms. Keyword engines score the words a record shares with the query, commonly with BM25. A rare term counts for more than a common one, a repeated term adds less each time, and a long record is damped. Elasticsearch uses BM25 by default, with two settings: k1 at 1.2 controls how fast repeats stop counting, and b at 0.75 how much length matters. A BM25 score has no fixed top. Our article on hybrid search walks through the formula.
Text similarity. Meaning-based search compares vectors, the lists of numbers a language model produces for a text. Cosine similarity runs from minus 1 to 1. Elasticsearch turns it into a score as (1 + cosine) / 2, so a cosine of 0, no measurable likeness at all, still scores 0.5.
Graph links, boosts and recency. A graph can add a signal for the links two records share, such as the same part or supplier. A boost makes chosen fields or sources count more. Curiosity’s ranking tuning guide notes that boosts multiply: a title boost of 2.0 makes a title match count twice as much as a body match at 1.0. Recency lowers the score of older records. In Curiosity Studio the last 14 days keep their full score by default.
How it is built
Five parts, one number
One record’s score, built part by part. The query, the record and the values are examples. Pick a step to stop the drawing and read it.
- 01
One query, one record
An engineer searches hydraulic leak door 4. A ticket matches. Its score is built in parts.
- 02
Search terms
Rare words count more. Hydraulic is rare in this index, door is common. This part has no fixed top.
- 03
Text similarity
The ticket is close in meaning to the query. Its similarity, on a scale of its own, is weighted and added.
- 04
Graph links
The ticket links to the same door and the same supplier as other matches. That adds a little more.
- 05
Boost and recency
The query matched the title, which counts double. The ticket is 3 days old, so it keeps its full score.
- 06
One number
The parts add up to 11.4. Nothing caps it: there is no 100, and no value means a perfect match.
Why it is not a percentage
A percentage is a share of a known whole. A score has no whole, and no value means a perfect match. The Apache Lucene project’s wiki puts it plainly: “score values are meaningful only for purposes of comparison between other documents for the exact same query and the exact same index.”
The same page shows why dividing by the best score does not help. Three documents score 2.345, 16.415 and 2.345. As shares of the best, they read 14%, 100% and 14%. Delete the best one, and the other two jump to 100%. Neither of them changed, and neither became more relevant.
Nor is a score a probability. Robertson and Zaragoza’s 2009 review of BM25 is explicit about it. It derives the formula on the basis that “the only property we wish to preserve is the rank order of documents.” Parts that would not change the order are dropped along the way. The review notes that a good estimate of the probability of relevance would need them.
Why two searches do not compare
A score depends on the query and on everything else in the index. BM25 weighs a term by how rare it is in the collection, so adding records changes the score of records that did not change. Microsoft’s Azure AI Search documentation lists this among the reasons scores shift from one query to the next. It describes scores as “reflecting the strength of match relative to other documents in the same result set.”
So a 14.2 for a query with a part number and a 3.1 for a vague question say nothing about each other. Rare terms score high and common words score low, whatever the results are worth. Keyword scores and vector scores also sit on different scales. That is why hybrid search has to merge its two lists by rank, or after rescaling the scores.
Reading a list
Two lists, two full bars
Bars drawn against the best score make every top result look the same. The gaps tell them apart. Pick a step to stop the drawing and read it.
- 01
Two searches, one index
Search A names a valve by its part number. Search B asks a vague question in common words.
- 02
Search A scores high
A rare part number scores high. Two records match it well, then the scores fall.
- 03
Search B scores low
Common words score low, whatever the results are worth. Its four scores sit close together.
- 04
Bars drawn against the best
Each bar is as long as its score, compared with the best score in its own list.
- 05
Both tops read 100%
As a share of the best, the top result of each search reads 100%. The two tops are not equally good.
- 06
The gap is the signal
Search A drops after its second result: two strong matches, then weak ones. Search B never drops.
How scores get misread
- A fixed cutoff on a keyword score, such as hiding everything under 5. It drops good results for queries in common words and keeps weak ones for rare words.
- A bar or a percentage read as a grade. The top bar is full in every search, including one where nothing matched well.
- Two searches, or two versions of an index, compared by their top scores instead of by judged results.
- An assistant that treats the first result as the answer because its score is high. A high score says the record is the best match found, not that it answers the question.
How to read a score
Three questions cover most decisions about a ranked list:
- Am I comparing results from one search only? Order and gaps inside one list carry meaning. Numbers across lists do not.
- Where does the list drop? A large gap between two neighbors often marks the end of the strong matches. A flat list means nothing stood out.
- Have I read the top results? Whether a result fits is in its content, not in its number.
When a system needs a threshold, set it on a bounded scale and measure it. The tuning guide sets a vector similarity cutoff at the lowest value that still keeps the right results on queries people have judged. Our article on hybrid search describes how to judge a ranking.
How Curiosity shows a score
In Curiosity Studio, keyword search, vector similarity and graph links run over the same graph. A result’s score combines the parts its search uses. Which parts count depends on the search: a plain keyword search mainly uses search terms and recency, and a similarity view can add meaning and links.
A similarity view draws a bar beside each result, as long as its score compared with the best one in the list. So the top bar is always full, and the bars show the order and the gaps, not a grade. Developers can see why a result scored where it did: see search for developers.
The boosts, the recency window and the vector cutoffs are settings you tune against your own judged queries. Our paper What a search score means explains all of this in ten pages, for anyone who reads ranked results.
References
Sources and further reading
The Probabilistic Relevance Framework: BM25 and Beyond
Robertson and Zaragoza · Foundations and Trends in IR, 2009
How BM25 is derived, and why it preserves the order of results rather than a probability.
ReadScores As Percentages
Apache Lucene wiki
Why a score turned into a percentage misleads, with three documents and one deletion.
ReadBM25 relevance scoring
Microsoft Learn · Azure AI Search
An unbounded BM25 score, and why scores shift as an index changes.
ReadSimilarity settings
Elasticsearch Reference
BM25 as the default similarity, and what its k1 and b settings control.
ReadDense vector field type
Elasticsearch Reference
How a cosine similarity becomes a score between 0 and 1.
ReadWhat a search score means
Curiosity whitepaper · October 2026
The five parts of a score, why it is not a percentage, and three habits for reading a list.
ReadRanking tuning
Curiosity documentation
Field boosts, vector cutoffs and recency decay, tuned against a judged set of queries.
ReadFAQ
Questions people ask
Is a search score a percentage?
No. A percentage is a share of a known whole, and a score has none: no value means a perfect match. It puts results in order for one query. A bar drawn against the best result is full at the top of every list.
Can I compare scores from two different searches?
No. A score depends on the query’s words and on the rest of the index, so each search has its own scale. Compare results within one list, by their order and the gaps between them.
What is a good search score?
There is no such value. A keyword score has no fixed top, and the same number means different things in different searches. Judge a result by reading it, and judge a ranking against queries people have marked.
Why does the top search result always show a full bar?
Because the bar is drawn against the best score in that list. The best result fills it whether it matches well or poorly. Read the gaps between the bars instead.
Articles
Read next
What is hybrid search?
Hybrid search
Keyword and meaning-based search on one query, how their two lists become one ranking, and when an exact match has to win.
ReadWhat is enterprise search?
Enterprise search
How search inside a company differs from web search, how it works, where it goes wrong, and how to test one before you trust it.
ReadWhat is AI governance for internal tools?
AI governance
Who may build, review, ship and change the tools AI builds inside a company, the five controls that answer for them, and where the EU AI Act fits.
ReadYour data. Your infrastructure.