pattern

Hybrid Retrieval

also called Dense + Sparse Retrieval, BM25 + Vector

Running lexical keyword search and dense vector search together and fusing the results, because each fails where the other succeeds.

ragsearchretrieval

Dense vector search matches meaning, which is what makes it valuable, and it is systematically poor at exact tokens: product codes, error numbers, policy references, part numbers, surnames, version strings. These embed to nothing distinctive, so a query for error code TX-4471 retrieves passages about errors in general.

Lexical search matches those exactly and fails on vocabulary mismatch — a user asking about "time off" will not match a document that says "annual leave".

Running both and fusing the ranked lists, typically with reciprocal rank fusion, is consistently one of the largest single quality improvements available in a RAG system, and it is cheaper to implement than most alternatives being considered at the same time.

The reason it is underused is that vector databases are the visible new component and keyword search looks like the old thing being replaced, so teams skip it. In enterprise corpora full of identifiers, acronyms and product names, that omission is usually the difference between a system that answers and one that plausibly misses.

The refinement worth adding once both are running: query routing, where a query that looks like an identifier weights lexical results more heavily and a conceptual question weights semantic results, rather than fusing with fixed weights for everything.