Hybrid Search / Reciprocal Rank Fusion (k=60)
RRF score = Σ 1 / (60 + rank) across both lists
BM25 · sparse
keyword / exact-match
1doc A8.5
2doc C6.1
3doc B4.8
4doc E3.2
Vector · dense
semantic / embedding
1doc B0.91
2doc A0.87
3doc D0.82
4doc C0.79
Fused (RRF)
rank-only merge
scores on different scales — RRF discards them, keeps only rank