Hybrid search runs a keyword search and a semantic search over the same corpus and merges the two result lists into one ranking. It exists because the two methods fail in opposite directions, so the union is more reliable than either half.
Also called: sparse-dense retrieval, fusion retrieval · Reviewed
Two retrievers run against the same documents. The keyword side matches literal terms weighted by rarity; the semantic side matches embeddings by meaning. Each returns a ranked list, and a fusion step combines them into a single ordering.
The hard part is the merge, because the two scores are not comparable — a cosine similarity and a term-frequency score are different units. The common answer is to ignore the scores and combine the ranks instead, which sidesteps the calibration problem entirely.
The two methods fail on opposite inputs. Keyword search cannot connect "cancel" to "terminate"; semantic search cannot reliably find an order number, an error string or a surname. A corpus that contains both prose and identifiers defeats either one used alone.
It is also the cheapest quality improvement available to a retrieval system that already works. Both indexes usually exist already, and the fusion step is a few lines rather than a new model.
| Method | Matches on | Fails on | What it costs |
|---|---|---|---|
| Keyword | Literal terms, weighted by rarity | Wording the user did not guess — "cancel" against "terminate" | Cheapest; no model call at query time |
| Semantic | Meaning, through embeddings | Identifiers: order numbers, error codes, surnames, version strings | An embedding call per query, plus a vector index |
| Hybrid | Both, merged into a single ranking | Neither, in the common cases — but the merge has to be chosen | Both indexes, plus the fusion step |
Weighting the two sides with a single global constant and leaving it there. The right balance depends on the query — an exact identifier wants the keyword side to dominate, a vague description wants the semantic side — and one fixed ratio serves neither well.
The other mistake is adding hybrid search before measuring whether retrieval is the problem. Two retrievers is twice as much to tune and twice as much to debug, and it is wasted effort if the failure is actually chunking or a bad prompt.