pub enum FusionStrategy {
Rrf {
k: usize,
},
Weighted {
weights: Vec<f64>,
},
Union,
VectorOnly,
KeywordOnly,
Custom {
name: String,
params: Value,
},
}Expand description
Fusion strategy for combining ranked result lists.
Validated at construction and deserialization boundaries.
Variants§
Rrf
Reciprocal Rank Fusion (default, recommended). Rank-based, distribution-agnostic.
Weighted
Weighted linear combination of scores. Weights normalized to 1.0; must be finite.
Union
Take union with max score per ID.
VectorOnly
Skip BM25 entirely – return only vector (HNSW) results.
KeywordOnly
Skip HNSW entirely – return only BM25 keyword results.
Custom
Pack-defined or user-defined custom strategy dispatched by name at runtime.
Implementations§
Source§impl FusionStrategy
impl FusionStrategy
Sourcepub fn rrf() -> FusionStrategy
pub fn rrf() -> FusionStrategy
Create an RRF strategy with default k=60.
Sourcepub fn try_rrf(k: usize) -> Result<FusionStrategy, FusionStrategyError>
pub fn try_rrf(k: usize) -> Result<FusionStrategy, FusionStrategyError>
Create an RRF strategy with custom k value. Returns error if k == 0.
Sourcepub fn rrf_with_k(k: usize) -> FusionStrategy
pub fn rrf_with_k(k: usize) -> FusionStrategy
Create an RRF strategy, clamping k to at least 1.
Prefer try_rrf at public API boundaries.
Sourcepub fn try_weighted(
weights: Vec<f64>,
) -> Result<FusionStrategy, FusionStrategyError>
pub fn try_weighted( weights: Vec<f64>, ) -> Result<FusionStrategy, FusionStrategyError>
Create a weighted strategy after validating weights are finite.
Sourcepub fn weighted(weights: Vec<f64>) -> FusionStrategy
pub fn weighted(weights: Vec<f64>) -> FusionStrategy
Create a weighted strategy. Panics on NaN/infinity.
Prefer try_weighted at public API boundaries.
Sourcepub fn union() -> FusionStrategy
pub fn union() -> FusionStrategy
Create a union strategy.
Sourcepub fn try_custom(
name: String,
params: Value,
) -> Result<FusionStrategy, FusionStrategyError>
pub fn try_custom( name: String, params: Value, ) -> Result<FusionStrategy, FusionStrategyError>
Create a custom strategy with name validation.
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 ==.