pub enum FusionAlgorithm {
RRF {
k: f64,
},
WeightedSum {
lexical_weight: f32,
vector_weight: f32,
},
}Expand description
Algorithm used to combine lexical and vector scores in hybrid search.
The default fusion algorithm (when none is specified in a
SearchRequest) is RRF with k = 60.0.
Variants§
RRF
Reciprocal Rank Fusion (RRF).
Combines results based on rank position rather than raw scores,
making it effective when score magnitudes are not comparable
(e.g. BM25 vs cosine similarity). The score for each document is
sum(1 / (k + rank)) across the result lists.
Fields
WeightedSum
Weighted Sum with automatic min-max score normalization.
Before weighting, the engine independently normalizes lexical and
vector scores to the [0.0, 1.0] range using min-max normalization
over their respective result sets.
Trait Implementations§
Source§impl Clone for FusionAlgorithm
impl Clone for FusionAlgorithm
Source§fn clone(&self) -> FusionAlgorithm
fn clone(&self) -> FusionAlgorithm
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FusionAlgorithm
impl Debug for FusionAlgorithm
impl Copy for FusionAlgorithm
Auto Trait Implementations§
impl Freeze for FusionAlgorithm
impl RefUnwindSafe for FusionAlgorithm
impl Send for FusionAlgorithm
impl Sync for FusionAlgorithm
impl Unpin for FusionAlgorithm
impl UnsafeUnpin for FusionAlgorithm
impl UnwindSafe for FusionAlgorithm
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.