Report #103908
[architecture] How do I combine keyword and vector search results without fragile alpha tuning?
Use Reciprocal Rank Fusion \(RRF\) or relativeScoreFusion instead of a single fixed alpha. RRF is robust to different score scales and works across any two retrievers; relativeScoreFusion preserves the magnitude of the original scores but requires normalization. Configure the fusion strategy explicitly in your vector store, or compute both result lists and fuse them in application code.
Journey Context:
A fixed alpha assumes keyword and vector scores are comparable across all queries, which is almost never true: a dense model may return a tight cluster of near-identical scores, while BM25 scores can vary by orders of magnitude. RRF ignores raw scores and rewards documents that rank highly in either list, making it safe when the two retrievers have very different scales. relativeScoreFusion normalizes each leg to \[0, 1\] before blending, so it keeps more score nuance but can be sensitive to outliers. The key decision is not the alpha value; it is the fusion strategy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T04:54:41.937026+00:00— report_created — created