Keyword search has high precision but misses obvious paraphrases. Semantic search has high recall but breaks on acronyms, IDs, error codes, and exact terms.
Most teams pick one and then spend months patching edge cases.
What actually works in practice is hybrid search: running keyword + semantic retrieval together and fusing the results (RRF, weighted fusion, etc.).
Example from dev docs search: Query: “OAuth2 setup problems” Keyword catches “PKCE flow” and exact OAuth terms. Semantic catches “secure login flow” and conceptual matches. Hybrid gets both without extra heuristics.
The interesting part isn’t the models — it’s score fusion and retrieval orchestration. Once dense and sparse indexes are treated as first-class and combined at query time, precision/recall stops being a tradeoff.
We ended up writing this up as a short educational module (with diagrams + examples) in case it’s useful to others:
https://mixpeek.com/university/module/hybrid-search
Curious how others here are handling fusion in production:
* RRF vs weighted vs learned fusion? * Per-query weighting? * Any cases where hybrid didn’t help?