Function reciprocalRankFusion

  • Merge two ranked retrieval results via Reciprocal Rank Fusion.

    Parameters

    • denseRanked: RankedDoc[]

      1-based ranked list from dense retrieval.

    • sparseRanked: RankedDoc[]

      1-based ranked list from sparse retrieval.

    • options: RRFOptions = {}

      RRFOptions; defaults to w_dense=0.7, w_sparse=0.3, k=60.

    Returns RRFResult[]

    Merged results sorted by fused score descending, stable tiebreak by id ascending.

    Example

    const dense = [{ id: 'a', rank: 1 }, { id: 'b', rank: 2 }];
    const sparse = [{ id: 'b', rank: 1 }, { id: 'c', rank: 2 }];
    const merged = reciprocalRankFusion(dense, sparse);
    // => [{ id: 'b', score: 0.0162, denseRank: 2, sparseRank: 1 }, ...]