query BM25 (sparse) exact keyword, TF-IDF inverted index, sub-10ms precise, brittle. zero OOV tolerance. Dense (bi-encoder) semantic similarity FAISS / vector DB, 50-200ms paraphrase-tolerant, keyword-blind RRF fusion rank-only merge cross-encoder rerank top-30 → top-5. adds 30-100ms.