Hybrid Retrieval from Scratch: BM25 + Dense Embeddings + RRF + Reranker
· 9 min read
Build a production retrieval pipeline in pure Python with no framework, no vector database. BM25 for keywords, dense embeddings for paraphrase, reciprocal rank fusion to combine them, and a cross-encoder reranker on top. Evaluated with NDCG@10 on the FiQA benchmark.