pub struct FusionEngine { /* private fields */ }Expand description
The fusion engine that combines candidates from multiple modalities
Implementations§
Source§impl FusionEngine
impl FusionEngine
Sourcepub fn new(config: FusionConfig) -> Self
pub fn new(config: FusionConfig) -> Self
Create a new fusion engine
Sourcepub fn fuse(
&self,
vector_candidates: Option<FilteredCandidates>,
bm25_candidates: Option<FilteredCandidates>,
) -> FusionResult
pub fn fuse( &self, vector_candidates: Option<FilteredCandidates>, bm25_candidates: Option<FilteredCandidates>, ) -> FusionResult
Fuse candidates from vector and BM25 search
INVARIANT: Both candidate sets are already filtered to AllowedSet. This function does NOT apply any additional filtering.
This is the two-lane convenience over FusionEngine::fuse_multi: it
builds weighted lanes from the configured method weights and delegates,
so the two-lane and N-ary paths share exactly one scoring implementation.
Sourcepub fn fuse_multi(&self, lanes: Vec<WeightedLane>) -> FusionResult
pub fn fuse_multi(&self, lanes: Vec<WeightedLane>) -> FusionResult
N-ary fusion across any number of pre-filtered modality lanes.
This is the canonical multi-lane path: vector, BM25, and grep (or any
future lane) are fused by a single call. RRF funnels through
fuse_rrf_weighted; Linear and Max combine per-lane normalized scores
weighted by each lane’s weight.
INVARIANT: every lane is already filtered to the AllowedSet. No additional filtering happens here.
Auto Trait Implementations§
impl Freeze for FusionEngine
impl RefUnwindSafe for FusionEngine
impl Send for FusionEngine
impl Sync for FusionEngine
impl Unpin for FusionEngine
impl UnsafeUnpin for FusionEngine
impl UnwindSafe for FusionEngine
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more