Expand description
Operations on ranked lists: fuse multiple retrievers, then rerank.
Pairs with rankfns (scoring kernels). Combine results from multiple retrievers (BM25, dense, sparse) and rerank with MaxSim (ColBERT), diversity (MMR/DPP), or Matryoshka.
use rankops::rrf;
let bm25 = vec![("d1", 12.5), ("d2", 11.0)];
let dense = vec![("d2", 0.9), ("d3", 0.8)];
let fused = rrf(&bm25, &dense);
// d2 ranks highest (appears in both lists)§Fusion Algorithms
| Function | Uses Scores | Best For |
|---|---|---|
rrf | No | Incompatible score scales |
isr | No | When lower ranks matter more |
combsum | Yes | Similar scales, trust scores |
combmnz | Yes | Reward overlap between lists |
borda | No | Simple voting |
weighted | Yes | Custom retriever weights |
dbsf | Yes | Different score distributions |
condorcet | No | Pairwise voting, outlier-robust |
combmax | Yes | At least one retriever likes it |
combmin | Yes | All retrievers must agree (conservative) |
combmed | Yes | Median score, robust to outliers |
All have *_multi variants for 3+ lists.
§Diversity Reranking
| Function | Description |
|---|---|
mmr | Maximal Marginal Relevance (Carbonell & Goldstein, 1998) |
mmr_with_matrix | MMR with precomputed similarity matrix |
mmr_embeddings | MMR with embedding vectors (computes cosine similarity) |
MMR balances relevance and diversity via tunable λ parameter.
§Performance Notes
OpenSearch benchmarks (BEIR) show RRF is ~3-4% lower NDCG than score-based
fusion (CombSUM), but ~1-2% faster. RRF excels when score scales are
incompatible or unknown. See OpenSearch RRF blog.
Re-exports§
pub use validate::validate;pub use validate::validate_bounds;pub use validate::validate_finite_scores;pub use validate::validate_no_duplicates;pub use validate::validate_non_negative_scores;pub use validate::validate_sorted;pub use validate::ValidationResult;
Modules§
- explain
- Explainability module for debugging and analysis.
- optimize
- Optimization module exports.
- prelude
- Prelude for common imports.
- rerank
- Validation utilities for fusion results. Reranking: MaxSim (ColBERT), cosine similarity, diversity (MMR/DPP), matryoshka.
- strategy
- Strategy module for runtime fusion method selection.
- validate
- Validation utilities for fusion results.
Structs§
- Additive
Multi Task Config - Configuration for additive multi-task fusion.
- Consensus
Report - Analyze consensus patterns across retrievers.
- Explanation
- Explanation of how a fused score was computed.
- Fused
Result - A fused result with full provenance information for debugging and analysis.
- Fusion
Config - Configuration for rank-based fusion (Borda,
CombSUM,CombMNZ). - MmrConfig
- Maximal Marginal Relevance (MMR) configuration.
- Optimize
Config - Optimization configuration for hyperparameter search.
- Optimized
Params - Optimized parameters from hyperparameter search.
- Retriever
Id - Retriever identifier for explainability.
- Retriever
Stats - Attribution statistics for each retriever.
- RrfConfig
- RRF configuration.
- Source
Contribution - Contribution from a single retriever to a document’s final score.
- Standardized
Config - Configuration for standardization-based fusion.
- Weighted
Config - Weighted fusion configuration.
Enums§
- Fusion
Error - Errors that can occur during fusion.
- Fusion
Method - Unified fusion method for dispatching to different algorithms.
- Fusion
Strategy - Fusion strategy enum for runtime dispatch.
- Normalization
- Score normalization methods.
- Optimize
Metric - Metric to optimize during hyperparameter search.
- Param
Grid - Parameter grid for optimization.
Functions§
- additive_
multi_ task - Additive multi-task fusion (ResFlow-style).
- additive_
multi_ task_ multi - Additive multi-task fusion for 3+ weighted lists.
- additive_
multi_ task_ with_ config - Additive multi-task fusion with configuration.
- analyze_
consensus - attribute_
top_ k - Attribute top-k results to retrievers.
- borda
- Borda count voting — position-based scoring.
- borda_
multi - Borda count for 3+ result lists.
- borda_
with_ config - Borda count with configuration.
- combanz
- CombANZ: average of non-zero scores.
- combanz_
multi - CombANZ for 3+ result lists.
- combmax
- CombMAX: maximum score across all lists.
- combmax_
multi - CombMAX for 3+ result lists.
- combmed
- CombMED: median score across all lists.
- combmed_
multi - CombMED for 3+ result lists.
- combmin
- CombMIN: minimum score across all lists.
- combmin_
multi - CombMIN for 3+ result lists.
- combmnz
- Normalized sum × overlap count (CombMNZ).
- combmnz_
explain - CombMNZ with explainability.
- combmnz_
multi CombMNZfor 3+ result lists.- combmnz_
with_ config CombMNZwith configuration.- combsum
- Sum of min-max normalized scores (CombSUM).
- combsum_
explain - CombSUM with explainability.
- combsum_
multi CombSUMfor 3+ result lists.- combsum_
with_ config CombSUMwith configuration.- condorcet
- Condorcet fusion (pairwise comparison voting).
- condorcet_
multi - Condorcet for 3+ result lists.
- dbsf
- Distribution-Based Score Fusion (DBSF).
- dbsf_
explain - DBSF with explainability.
- dbsf_
multi - DBSF for 3+ result lists.
- dbsf_
with_ config - DBSF with configuration.
- isr
- Inverse Square Root rank fusion with default config (k=1).
- isr_
multi - ISR for 3+ result lists.
- isr_
with_ config - ISR with custom configuration.
- mmr
- Maximal Marginal Relevance reranking.
- mmr_
embeddings - MMR for embedding-based retrieval.
- mmr_
with_ matrix - MMR with precomputed similarity matrix.
- mrr
- Mean Reciprocal Rank.
- ndcg_
at_ k - Normalized Discounted Cumulative Gain at k.
- normalize_
scores - Normalize a list of scores using the specified method.
- optimize_
fusion - Optimize fusion hyperparameters using grid search.
- rbc
- Rank-Biased Centroids (RBC) fusion.
- rbc_
multi - RBC for 3+ result lists with custom persistence.
- recall_
at_ k - Recall at k.
- rrf
- Reciprocal Rank Fusion of two result lists with default config (k=60).
- rrf_
explain - RRF with explainability: returns full provenance for each result.
- rrf_
into - RRF with preallocated output buffer.
- rrf_
multi - RRF for 3+ result lists.
- rrf_
weighted - Weighted RRF: per-retriever weights applied to rank-based scores.
- rrf_
with_ config - RRF with custom configuration.
- standardized
- Standardization-based fusion (ERANK-style).
- standardized_
multi - Standardized fusion for 3+ result lists.
- standardized_
with_ config - Standardized fusion with configuration.
- weighted
- Weighted score fusion with configurable retriever trust.
- weighted_
multi - Weighted fusion for 3+ result lists.