Hybrid retrieval combines keyword search and semantic (vector) search so a retrieval-augmented generation system gets both exact-term precision and…
See the blind spots that make keyword and semantic search complementary.
Keyword search matches exact terms and is unbeatable for names, product codes, and rare identifiers — but it misses synonyms and paraphrases, so 'how do I cancel' won't find a doc titled 'ending your subscription'. Semantic search matches meaning and handles that paraphrase, but it can miss an exact token, sometimes ranking a merely on-topic passage above the one containing the precise term.
Their weaknesses are opposite, which is exactly why combining them works: hybrid retrieval catches both the exact matches and the meaning matches, raising recall without giving up precision.
Run both retrievers and combine their results into one ranked list.
Hybrid retrieval runs the query through both a keyword index and a vector index, each returning its own ranked list of candidates. The system then fuses those lists into a single ranking to pass to the model.
The catch is that the two scores live on incomparable scales — a BM25 score of 12.4 means nothing next to a cosine similarity of 0.83. You cannot just add them. This is why fusion usually works on ranks, not raw scores.
Merge ranked lists fairly with the simple, robust RRF formula.
Reciprocal Rank Fusion (RRF) sidesteps the scale problem by using only each document's rank in each list. For every document it adds up 1/(k + rank) across the lists it appears in, where k is a small constant (commonly 60). A document ranked highly by either retriever gets a large contribution; one ranked highly by both wins.
Because it ignores raw scores, RRF needs no score calibration and is remarkably robust — which is why it is the default fusion method in many search engines and RAG stacks.
score = {}
for list in [keyword_hits, vector_hits]:
for rank, doc in enumerate(list, start=1):
score[doc] += 1 / (60 + rank) # k = 60
final = sort(score, descending=True)Each document accumulates 1/(k+rank) from every list it appears in; k=60 softens the gap between top ranks. A doc near the top of either list scores well, and appearing in both stacks the contributions — no score normalization needed.
Get hybrid retrieval working well and sidestep the usual errors.
Pull a healthy number of candidates from each retriever (say the top 20–50 each) before fusing, so good results aren't cut off early. If you want to favor one method, use weighted fusion to give its contributions more pull. Often a reranker is applied after fusion to reorder the merged top candidates for final precision.
Watch for: retrieving too few candidates from each side before fusing (the right doc never makes it in); comparing raw scores across methods instead of fusing by rank; and using different text processing for the two indexes. Also keep the same embedding model for indexing and querying on the semantic side. Evaluate hybrid against each method alone on real queries to confirm it actually helps your data.
Hybrid retrieval combines keyword search (exact terms) and semantic search (meaning) because their blind spots are opposite. Since their scores are on different scales, results are fused by rank, most often with Reciprocal Rank Fusion (RRF), which sums 1/(k+rank) across lists — no score calibration needed. Pull enough candidates from each retriever, optionally weight or rerank, and evaluate against each method alone to confirm the gain.
Design hybrid retrieval for a docs site where users search both 'how do I reset my password' and exact error codes. Decide how many candidates to pull from each retriever, why RRF suits the merge, and how you would test that hybrid beats semantic-only on your real query mix.
What is hybrid retrieval?
Hybrid retrieval fuses lexical and vector search because their strengths and blind spots are opposite, improving recall without losing precision.
Why can't you just add keyword and semantic scores together?
A BM25 score and a cosine similarity are on different scales, so rank-based fusion like RRF is used to merge the lists fairly.
How does Reciprocal Rank Fusion (RRF) work?
RRF ranks by summed reciprocal ranks, rewarding documents ranked highly by either retriever and especially by both, without normalizing scores.
What is a common mistake in hybrid retrieval?
Fusion can only reorder what it receives; pulling enough candidates from each side (and fusing by rank, not raw score) is essential.