Report #102551
[architecture] Should my RAG retriever be dense semantic, lexical BM25, or both?
Use BM25/lexical search when queries contain exact identifiers, rare terms, proper nouns, codes, or highly selective phrases; use dense semantic search when queries are paraphrased, intent-driven, or cross-domain. In production, default to hybrid rather than choosing one.
Journey Context:
Dense embeddings compress meaning into a single vector and excel at synonymy and semantic variation, but they can miss rare or exact-match terms because those signals get washed out by pooling. BM25 is the opposite: it is sensitive to highly selective keywords but fails when users use different words. DPR's seminal comparison showed dense outperforming BM25 on open-domain QA, while BM25 won on SQuAD where lexical overlap was high. The architecture decision is therefore not 'which is better' but 'which failure mode hurts your query distribution more.' Most real-world RAG systems see both query types, so maintain both retrieval channels.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T05:04:06.038110+00:00— report_created — created