Search RAG Retrieval
Search RAG - Hybrid Retrieval
Hybrid search is not optional once users ask real questions.
Why this matters in production
Lexical search finds exact things. Dense search finds similar things. Sparse semantic models sit somewhere in between. Production retrieval needs all of them because user questions are messy and corpora are inconsistent.
This is usually a mistake: using sparse retrieval as a hard filter before dense retrieval. Anything filtered out early can never be recovered, no matter how semantically perfect it was.
What breaks
Dense-only misses IDs and exact terms. Lexical-only misses paraphrases. Parallel paths without deduplication overrepresent popular documents. Hybrid without score attribution becomes impossible to tune.
If you cannot tell whether BM25, dense vectors, generated queries, or metadata caused a chunk to win, you do not have a retrieval system. You have an argument with a ranking function.
What works
Run retrieval paths independently over the eligible corpus. Fuse candidates, deduplicate by source and semantic overlap, preserve per-path scores, then rerank with multiple signals.
Do not let one retrieval method become the gatekeeper unless the task is narrow and the failure cost is low.
Practical guidance
Evaluate hybrid retrieval with path-level recall. The question is not only whether the final top-k was good; it is whether each retrieval path contributed useful evidence and where it failed.
What happened
A dense retriever missed an exact error code that BM25 found immediately. Later, a BM25-first pipeline missed a paraphrased policy question that dense retrieval would have found.
Why retrieval failed
Each method was used as if it were universally reliable instead of as one candidate generator.
Why it was hard to detect
Aggregate answer metrics hid the pattern because different query types failed in different ways.
What fixed it
The fix was parallel hybrid retrieval with per-path metrics and query-class dashboards.
Practical Guidance
Run lexical and dense paths in parallel.
Preserve score attribution.
Measure by query class, not only global top-k.