RRF, explained in 200 words

Reciprocal Rank Fusion is the simplest way to combine multiple ranked lists. It's also one of the most effective. Here's the math.

For each document, add up one term per signal:

RRF_score(d) = Σ weight_r / (k + rank_r(d))

with k = 60. That's it. No score calibration, no normalization — ranks are scale-free, so a BM25 score and a cosine similarity can fuse without either being rescaled.

Our weights

Dense 0.4 (semantic meaning), BM25 0.3 (exact keywords), sparse 0.2 (synonym expansion), knowledge graph 0.1 (structure). Every weight is tunable per account and per query.

After the fuse

We over-fetch twice the requested page, run the top 20 through a cross-encoder reranker (skipped for short queries), and return. Cheap signals run first; the priced ones only fire when lexical leaves the page unfilled.