Insight · October 8, 2026
Two retrievers,
one ranking.
Pure vector search was supposed to win. In production the teams that got the best results kept keyword search next to it. Here is what hybrid search is, and why the merge is the hard part.
01 · The short answer
Two searches, merged into one.
Hybrid search runs two retrievers at once. A keyword search matches the exact words in a query, and a vector search matches its meaning. The system fuses the two ranked lists into one, so a single result set carries both the precise term match and the semantic one that shares no words with the query.
It exists because neither retriever is complete on its own. Keyword search is precise but literal. Vector search understands meaning but misses exact strings. Hybrid keeps both, and spends a small amount of extra work turning two disagreeing lists into one ordering you can trust.
02 · The problem it solves
Each search is blind where the other sees.
Vector search reads meaning. It turns the query and every document into embeddings and returns the passages that sit closest, which is why it can match a question about a refund to a passage that only says get my money back. We wrote the long version in what is semantic search. Its weakness is the exact string. Anthropic gives the clean example: ask for Error code TS-999 and an embedding model can return general content about error codes and miss the one line that names it.
Keyword search is the mirror image. BM25, the ranking function that has powered search for decades, matches the literal tokens, so it is strong on the queries vectors fumble: product codes, SKUs, specialized jargon, dates, and proper names. What it cannot do is tell that two different phrasings mean the same thing. Google Cloud states the tradeoff plainly: keyword search excels at precision but struggles with alternate phrasing, while vector search captures meaning but may overlook specific terms.
You could pick one and accept the gap. Hybrid search refuses the choice. It runs both and lets each cover the other's blind spot, which is why Microsoft, Google, and Anthropic all describe the keyword side as sitting alongside the vector side, not being replaced by it.
The one line to keep
“One retriever finds the exact word. The other finds the meaning. Hybrid search is the discipline of keeping both.”
03 · The anatomy
Five parts, and the merge is the point.
01
Keyword retriever
The sparse side. BM25 over an inverted index, the same ranking that has run search engines for decades. It finds the exact words, so a product code, an error string, or a proper noun lands even when nothing else on the page looks like the query.
02
Vector retriever
The dense side. Every passage and the query become embeddings, and search returns the passages whose meaning sits closest. It matches a refund to get my money back, where the keyword side sees two unrelated strings.
03
Two ranked lists
Both retrievers run against the same corpus and each returns its own ordered list. The two orderings disagree on purpose. Each one is strong exactly where the other is blind.
04
Fusion
One step merges the two lists into a single ranking. Reciprocal Rank Fusion is the common default, because it combines by rank position rather than by raw score, which the two sides measure in incompatible units.
05
One result set
The query returns a single ordered list. A passage that both retrievers liked rises to the top, and a passage that only one of them found still gets its place. The caller never sees that two searches ran.
04 · Not just adding the scores
The two sides do not speak the same number.
The obvious merge is to add the two scores and sort. It does not work. A vector search returns a cosine distance between two points in space. A keyword search returns a BM25 relevance score. The two are computed in different units on different scales, so adding them together is meaningless, and whichever side happens to produce larger numbers quietly dominates the result.
Reciprocal Rank Fusion is the common answer, and it sidesteps the problem by ignoring the scores entirely. Google Cloud describes it as useful exactly when the individual relevance scores are calculated in different spaces that are difficult to compare directly. RRF looks only at where each document landed in each list. A document gets one divided by a constant plus its rank, from every list it appears in, and those values are summed.
The constant, usually 60, keeps a single first place finish from running away with the result and lets lower ranked items still contribute. The effect is that consistency across both lists beats a lone high rank in one. A passage both retrievers liked rises. A passage only one of them found still earns a place.
05 · The merge, worked by hand
How a document in both lists wins.
Say two retrievers each return three results for one query. The keyword list ranks document A first, B second, C third. The vector list ranks C first, D second, A third. Give every document one divided by sixty plus its rank in each list, then add the pieces up. Document A and document C each appear in both lists, so each collects two reciprocals and lands on top. Document B and document D each appeared once, so they sit below.
That is the whole mechanism. Google Cloud ships it as a single query in Spanner: run the vector search and the keyword search, cap each at its top results, union them, group by document, score by summed reciprocal rank, and return the merged order. Nothing in the merge needs the two scores to agree, because it never reads them.
keyword list · A (rank 1) B (rank 2) C (rank 3) vector list · C (rank 1) D (rank 2) A (rank 3) score(doc) = sum over each list of 1 / (60 + rank) A = 1/(60+1) + 1/(60+3) = 0.0323 ← in both lists C = 1/(60+1) + 1/(60+3) = 0.0323 ← in both lists B = 1/(60+2) = 0.0161 ← keyword only D = 1/(60+2) = 0.0161 ← vector only
Reciprocal Rank Fusion · rank position decides, not the raw score
06 · Where it earns its cost
It is the production default, not the demo default.
A demo built on pure vector search looks fine until a real user pastes an order number or a part code. The major platforms moved to hybrid for that reason. Microsoft runs full text and vector search in parallel in a single Azure AI Search request and merges them with Reciprocal Rank Fusion, and reports that its benchmark testing showed meaningful relevance gains from hybrid retrieval.
Hybrid also sets up the step that often matters most. A fusion step produces a strong shortlist cheaply, then a slower, more accurate model reorders it. Anthropic found that embeddings plus BM25 beat embeddings on their own, and that its full retrieval pipeline, which pulls the top 150 candidates and reranks them down to the top 20, cut the share of relevant passages it missed by 67 percent against a standard embedding baseline. We cover that second stage in what is reranking.
The practical shape is a pipeline. Keyword and vector retrieval run over the same index, fusion merges them into one ranked shortlist, and a reranker sharpens the top. Each stage is cheap to add and each one buys recall the stage before it could not.
07 · When not to reach for it
Two retrievers cost more than one.
Hybrid runs two searches where one would do, and keeps a second index current. If your queries are all natural language and your corpus holds no codes or identifiers, pure vector search may be enough. If every query is an exact lookup, keyword search alone is faster and simpler. The gain shows up on mixed traffic, where real users do both in the same session.
Fusion is also a tuning decision, not a switch. Reciprocal Rank Fusion is the safe starting point because it needs nothing configured. Google Cloud notes the alternative: normalize both scores to a common range and take a weighted sum, which hands you a dial to favor keyword or meaning but only pays off once you have labeled queries to tune against. Start with RRF, measure on your own data, and reach for weights only when the numbers ask for it.
The failure mode is shipping hybrid because it is fashionable and never measuring whether it beat the single retriever you already had. Recall on your own queries is the only verdict that counts. If hybrid does not move it, you are paying for a second search you do not need.
Closing
The exact word and the meaning, in one list.
The pure vector pitch was that meaning would make keywords obsolete. Production said otherwise. The systems that retrieve well keep both halves and spend their care on the merge. Run both, fuse by rank, measure the recall, and let the data decide the weights.

Written by · October 8, 2026
Donny Smith · ECD, Founder, Bttr.
Over the past 15 years, he has led creative teams and contributed to products used by millions of people worldwide, working with companies including Apple, Opendoor, JP Morgan, GE Aerospace, Pepsi, and Alterra Mountain Company.
LinkedInShare this perspective
More insights
Adjacent perspectives.
Bttr. Field Brief
The brief Bttr. writes for senior buyers.
Monthly. One signal worth your time on Brand Operating Systems, AI search visibility, and the infrastructure buildout. No filler.