pub enum FusionStrategy {
Rrf {
k: usize,
},
Weighted {
weights: Vec<f64>,
},
Union,
VectorOnly,
KeywordOnly,
}Expand description
Fusion strategy for combining ranked result lists.
See module-level docs for algorithm details.
Variants§
Rrf
Reciprocal Rank Fusion (default, recommended).
Uses only ranks, making it robust to different score distributions. Formula: score(d) = Σ 1/(k + rank_i(d))
Fields
Weighted
Weighted linear combination of scores.
Requires score normalization for different score scales (e.g., vector similarity 0-1 vs BM25 0-∞).
Weights are normalized to sum to 1.0 internally.
Union
Take union with max score per ID.
Useful when you want the best score from any source.
VectorOnly
Skip BM25 entirely — return only vector (HNSW) results.
Use when keyword search degrades quality (short queries, code search). The result list is the raw HNSW output with no fusion step.
KeywordOnly
Skip HNSW entirely — return only BM25 keyword results.
Use for exact-match retrieval (medication names, identifiers, slugs). The result list is the raw BM25 output with no fusion step.
Implementations§
Source§impl FusionStrategy
impl FusionStrategy
Sourcepub fn rrf() -> FusionStrategy
pub fn rrf() -> FusionStrategy
Create an RRF strategy with default k=60.
Sourcepub fn rrf_with_k(k: usize) -> FusionStrategy
pub fn rrf_with_k(k: usize) -> FusionStrategy
Create an RRF strategy with custom k value.
Sourcepub fn weighted(weights: Vec<f64>) -> FusionStrategy
pub fn weighted(weights: Vec<f64>) -> FusionStrategy
Create a weighted strategy with given weights.
Sourcepub fn union() -> FusionStrategy
pub fn union() -> FusionStrategy
Create a union strategy.
Trait Implementations§
Source§impl Clone for FusionStrategy
impl Clone for FusionStrategy
Source§fn clone(&self) -> FusionStrategy
fn clone(&self) -> FusionStrategy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FusionStrategy
impl Debug for FusionStrategy
Source§impl Default for FusionStrategy
impl Default for FusionStrategy
Source§fn default() -> FusionStrategy
fn default() -> FusionStrategy
Source§impl<'de> Deserialize<'de> for FusionStrategy
impl<'de> Deserialize<'de> for FusionStrategy
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<FusionStrategy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<FusionStrategy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for FusionStrategy
impl PartialEq for FusionStrategy
Source§fn eq(&self, other: &FusionStrategy) -> bool
fn eq(&self, other: &FusionStrategy) -> bool
self and other values to be equal, and is used by ==.