pub struct NumericBucketedSimilarity;Expand description
Similarity for numeric fields based on relative difference, bucketed into four bands.
Extracts f64 values from Text (parsed), Int, or Float field values and
computes relative_diff = |a - b| / max(|a|, |b|, 1.0):
relative_diff == 0.0 : 1.0 (exact)
relative_diff <= 0.05 : 0.85 (<= 5% difference)
relative_diff <= 0.20 : 0.6 (<= 20% difference)
relative_diff <= 0.50 : 0.3 (<= 50% difference)
otherwise : 0.0
Trait Implementations§
Source§impl SimilarityFn for NumericBucketedSimilarity
impl SimilarityFn for NumericBucketedSimilarity
fn similarity(&self, a: &FieldValue, b: &FieldValue) -> f32
Source§fn similarity_str(&self, a: &str, b: &str) -> f32
fn similarity_str(&self, a: &str, b: &str) -> f32
Zero-alloc hot path for pool-native comparison. Read more
fn field_kind(&self) -> FieldKind
Auto Trait Implementations§
impl Freeze for NumericBucketedSimilarity
impl RefUnwindSafe for NumericBucketedSimilarity
impl Send for NumericBucketedSimilarity
impl Sync for NumericBucketedSimilarity
impl Unpin for NumericBucketedSimilarity
impl UnsafeUnpin for NumericBucketedSimilarity
impl UnwindSafe for NumericBucketedSimilarity
Blanket Implementations§
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> 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>
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 more