Reciprocal Rank Fusion Reranker
Reciprocal Rank Fusion (RRF) is a model-free way to merge several ranked result lists into a single ordering. Rather than comparing raw similarity scores (which aren’t directly comparable across, say, a vector search and a full-text search), RRF looks only at each document’s rank position in each list. It scores every document with the formula1 / (rank + K), sums those
contributions across the lists, and re-sorts by the total. Documents that rank highly in more than
one search rise to the top. Because there’s no model to load or call, it’s fast and cheap, which is
why it’s the default reranker for LanceDB hybrid search. The implementation follows the
Cormack et al. paper.
Supported query types: hybrid search and multi-vector reranking. Because RRF fuses two or more ranked lists, it can’t rerank a single vector or full-text result set on its own. Callingrerank_vectororrerank_ftson anRRFRerankerraisesNotImplementedError.
Accepted Arguments
Multi-vector reranking
RRFReranker can also fuse the results of several vector searches with rerank_multivector, applying
the same rank-fusion algorithm across more than two lists. Every input result set must include the
_rowid column, so add .with_row_id(True) to each table.search(...) call before reranking,
otherwise the call raises a ValueError. See multi-vector reranking
for a full example.