The Two Failure Modes
🔤 Keyword search's failure
You ask "what happens if the other party breaches?" — the contract says "default by counterparty." No shared words, no match. Keyword search is blind to meaning.
🧠 Semantic search's failure
You search for clause "Section 4.2(b)" — the vector model retrieves things that are similar to the query, and an exact identifier can rank below fuzzy matches. Vectors are fuzzy by design.
Both failures are invisible until they bite — a missed clause in a contract review, a wrong precedent in research, a broken lookup in a knowledge base. Hybrid search is the structural fix.
How Hybrid Search Works
- Run two retrievers in parallel. BM25 over the keyword index, vector similarity over the embeddings — the same corpus, two views.
- Fuse the rankings. Score fusion (Reciprocal Rank Fusion is the common method) merges both lists into one candidate pool.
- Re-rank. A reranker (typically a cross-encoder) scores the top candidates and orders them precisely.
The division of labor is the point: fusion gets the right documents into the pool, reranking gets them to the top. The technical deep dive — including how embeddings work — is in Embeddings Explained and Reranking in RAG, with the original explainer in What Is Hybrid Search?.
Where It Matters Most
| Domain | Why hybrid wins |
|---|---|
| Legal | Exact clause citations and defined terms coexist with paraphrased questions — both must hit |
| Contracts | Boilerplate must match literally; casual questions must find it anyway |
| Technical docs | API names and error codes (exact) plus "how do I..." questions (semantic) |
| Mixed enterprise corpora | One index, many document types, both search behaviors required |
This is exactly why the flagship Lawyer Assistant uses hybrid retrieval: legal shorthand and clause citations must match exactly, while questions paraphrase freely. Its search recall benchmark is 94%, and the design is documented in Lawyer Assistant: A Privacy-First Legal AI Built on a Local RAG Pipeline.
Hybrid Search Inside RAG
In a RAG pipeline, retrieval quality sets the ceiling on answer quality. If the right passage never enters the candidate pool, no model can answer correctly. Hybrid search widens the pool to catch both exact and semantic matches — which is why it's the default recommendation for production RAG. The rest of the pipeline — chunking, grounding, citations — is covered in How to Build a RAG System That Answers From Your Documents — and Proves It.
Frequently Asked Questions (FAQ)
What is hybrid search?
Hybrid search runs two retrievers in parallel — BM25 keyword search and semantic vector search — then fuses and re-ranks the results. It catches exact terms (IDs, citations, boilerplate) and meaning (paraphrase, synonyms) in one pass.
Why is hybrid better than keyword search alone?
Keyword search fails on paraphrase and synonyms: it won't find a clause about 'default by counterparty' if you ask 'what happens if they breach.' Semantic search covers that — but keyword search catches exact terms that vectors blur, like clause IDs and legal shorthand.
Why is hybrid better than semantic search alone?
Semantic search can miss exact matches, rare terms, and precise identifiers — vector similarity is fuzzy by design. Keyword search nails exact strings. In domains like law, contracts, and code, exact terms carry meaning that vectors alone can lose.
Where does hybrid search matter most?
Document Q&A and RAG over technical, legal, or structured content — where exact identifiers and paraphrased questions both appear. It's also the default choice for enterprise search over mixed corpora.
How do you combine the two result sets?
Score fusion (e.g., Reciprocal Rank Fusion) merges the rankings, then a reranker (like a cross-encoder) reorders the top candidates. Fusion gets the right documents into the pool; reranking gets them to the top.
🔍 Need search that actually finds things?
I design and deploy retrieval systems — hybrid search, reranking, and citation-grounded answers — through Haal Lab. Contact me for a scoping conversation.