reciprocal rank fusion (rrf)

**Reciprocal Rank Fusion (RRF)** is a simple but highly effective technique for combining **ranked result lists** from multiple retrieval systems into a single, unified ranking. It is widely used in **hybrid search** and **RAG** pipelines where you want to merge results from different retrieval methods (e.g., vector search + keyword search). **The RRF Formula** $$\text{RRF}(d) = \sum_{r \in R} \frac{1}{k + \text{rank}_r(d)}$$ Where: - **d** is a document - **R** is the set of rankers being fused - **rank_r(d)** is the rank of document d in ranker r's list - **k** is a constant (typically **60**) that prevents high-ranked items from dominating excessively **Key Properties** - **Score-Agnostic**: RRF only uses **rank positions**, not raw scores. This makes it robust to different score scales and distributions across retrievers. - **No Training Required**: Unlike learned fusion methods, RRF needs no training data or parameter tuning — just set k and go. - **Handles Missing Documents**: If a document only appears in one ranker's list, it still gets a score from that ranker and zero contribution from others. **Why RRF Works So Well** - **Complementary Strengths**: Vector (dense) retrieval excels at **semantic similarity** while keyword (sparse) retrieval excels at **exact term matching**. RRF captures the best of both. - **Robustness**: By aggregating across multiple signals, RRF smooths out individual retriever failures. - **Simplicity**: Despite its simplicity, RRF often **matches or outperforms** more complex learned fusion methods. **Practical Usage** RRF is the default fusion strategy in **Elasticsearch** (hybrid search), **Weaviate**, and many production RAG systems. It's a go-to technique when combining any set of ranked retrieval results.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account