technique

Reciprocal rank fusion (RRF)

RRF is the standard way to combine multiple retrieval rankings (e.g., BM25 + vector) into one final score — sum `1 / (k + rank)` across all rankings for each document, sort by total.

Reciprocal rank fusion solves a real problem: hybrid search returns two ranked lists (BM25 + vector) with incompatible scores (BM25 is unbounded TF-IDF, vector is cosine in [-1, 1]). You can't just average them. RRF normalizes by rank position only: each document gets `Σ 1/(k + rank_i)` where k is a constant (typically 60) and rank_i is its position in the i-th ranking. Documents appearing high in multiple rankings rise to the top. Production RAG: every major framework (LlamaIndex, LangChain, Vercel AI SDK, Haystack) ships RRF as the default fusion strategy. It's parameter-free, deterministic, and beats most learned combiners.

When to use reciprocal rank fusion (rrf)

Common mistakes

FAQ

What is reciprocal rank fusion (rrf)?

RRF is the standard way to combine multiple retrieval rankings (e.g., BM25 + vector) into one final score — sum `1 / (k + rank)` across all rankings for each document, sort by total.

When should I use reciprocal rank fusion (rrf)?

Combining BM25 + vector ranks. Combining multiple embedding model rankings.

What are the most common mistakes with reciprocal rank fusion (rrf)?

Trying to average raw scores instead — incompatible score scales make the result garbage. Picking k too small — typical k=60 is well-validated; smaller k overweights the top result.

Last updated: 2026-06-01. Raw markdown: https://promtable.com/glossary/rrf.md.