Search “hybrid search RAG” and the first page is vendors who renamed embeddings. The operator version is smaller.
Hybrid search runs two indexes over the same corpus. A lexical index, BM25 or a learned sparse model, scores exact terms. A vector index scores meaning. Each returns its own ranked list. You fuse the two lists, and only then is the model allowed to write from the hits. The RAG Engineer calls the same thing hybrid retrieval.
Lexical search is still how you find an error code, a SKU, a proper name, a clause number. Those tokens are rare on purpose, and an embedding model tends to blur them. Vector search is still how you find the paragraph that never used your words. Honest questions come in both shapes. One index picks a side and loses the other.
Not “we added a vector store”, not magic fusion
A vector store without a lexical path is dense retrieval with a budget. Useful, and not hybrid.
A keyword search with an embedding rerank of the same keyword hits is a rerank, not a second index. Also useful. Also different.
Fusion is plumbing. Reciprocal rank fusion ignores the raw scores and adds up each document’s reciprocal rank across the two lists. Score normalisation squashes the scores onto one scale first. The RAG Engineer treats RRF as the safer default. Neither proves that the passage on screen is the passage you would accept in a dispute.
Where it sits in GRAIN
GRAIN is Gather corpora, Rank and rerank, Assemble context, Inspect failures, Navigate freshness. Hybrid retrieval is the first half of Rank: two signals in, one fused candidate list out, reranker after.
It does not replace Assemble, which decides what actually fits in the window. It does not replace Inspect, which asks whether the right chunk was fetched and used. It does not replace Navigate, which asks whether the passage is still current. Skip Inspect because the fused score looked confident and you have built a fluent miss with more maths.
A test for this week
Pull twenty real queries from your logs. Mark the ones where you would expect exact-term matching to win: identifiers, names, codes. Run them against your current retriever and count how many of those land in the top ten. That count is your case for hybrid, before anyone argues about fusion parameters. If the exact-term queries already land, hybrid is not your first problem. If they miss, no reranker will recover a chunk that never entered the candidate list.
Two pages
What is RAG? owns the method. What is GRAIN? owns the loop. This page is the Rank split.
The RAG Engineer is live. You do not need the hardcover to stop shipping a vector-only demo as “hybrid”.
Cite this:What is hybrid search? Two indexes, one inspectable hit.Len P. van der Hof. https://lenvanderhof.com/en/blog/what-is-hybrid-search/ ·