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 |
copeland | No | Net pairwise wins, more discriminative than Condorcet |
median_rank | No | Median rank across lists, 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§
- adapt
- Adapters for converting retriever outputs (distances, similarities, logits). Adapters for converting retriever outputs into rankops input format.
- diagnostics
- Fusion diagnostics: complementarity, overlap, score distributions. Fusion diagnostics: decide whether to fuse, and which method to use.
- dp_topk
- Differentiable top-k selection via smooth semiring DP. Differentiable top-k selection via dynamic programming on a smooth semiring.
- explain
- Explainability module for debugging and analysis.
- metrics
- Ranking evaluation metrics: MRR, NDCG, Hits@k, Precision@k, Recall@k, and more. Ranking evaluation metrics.
- optimize
- Optimization module exports.
- pipeline
- Composable fusion pipeline and multi-query fusion. Composable fusion pipeline: normalize, fuse, rerank, evaluate.
- prelude
- Prelude for common imports.
- rerank
- Reranking: MaxSim/ColBERT, MMR/DPP diversity, Matryoshka, scoring, quantization. Reranking: MaxSim (ColBERT), cosine similarity, diversity (MMR/DPP), matryoshka.
- validate
- Validation utilities for fusion results. 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.
- 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 - Analyze consensus across fused results, identifying high-agreement and single-source items.
- 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.
- copeland
- Copeland fusion – pairwise net wins across ranked lists.
- copeland_
multi - Copeland fusion 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.
- evaluate_
metric - Evaluate a ranked list using the specified metric.
- hit_
rate - Hit Rate (Success@k).
- 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.
- map
- Mean Average Precision (MAP).
- map_
at_ k - Mean Average Precision at k (MAP@k).
- median_
rank - Median Rank Aggregation.
- median_
rank_ multi - Median Rank Aggregation for 3+ result lists.
- 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.
- precision_
at_ k - Precision at k.
- 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 (RRF) with default configuration (k=60).
- rrf_
explain - RRF with explainability: returns full provenance for each result.
- 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.