# Reciprocal rank fusion (RRF)

**Source:** https://promtable.com/glossary/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.

---
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

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

## Common mistakes

- 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.

## Related terms

- [bm25](https://promtable.com/glossary/bm25)
- [hybrid-search](https://promtable.com/glossary/hybrid-search)
- [rag-fusion](https://promtable.com/glossary/rag-fusion)

*Last updated: 2026-06-01*
---

Original page: https://promtable.com/glossary/rrf
Maintained by Promtable (https://promtable.com). Content: CC BY 4.0. Cite as "Promtable — https://promtable.com/glossary/rrf".
Contact: info@vibecodingturkey.com.