pub enum SimilarityMetric {
Cosine,
Euclidean,
Manhattan,
DotProduct,
}Expand description
Similarity metrics for vector comparison
Different metrics are suitable for different use cases and vector characteristics.
§Examples
use vectorlite::SimilarityMetric;
let a = vec![1.0, 2.0, 3.0];
let b = vec![1.1, 2.1, 3.1];
let cosine_score = SimilarityMetric::Cosine.calculate(&a, &b);
let euclidean_score = SimilarityMetric::Euclidean.calculate(&a, &b);Variants§
Cosine
Cosine similarity - scale-invariant, good for normalized embeddings Range: [-1, 1], where 1 is identical
Euclidean
Euclidean similarity - geometric distance converted to similarity Range: [0, 1], where 1 is identical
Manhattan
Manhattan similarity - L1 norm distance converted to similarity Range: [0, 1], where 1 is identical, robust to outliers
DotProduct
Dot product - raw similarity without normalization Range: unbounded, requires consistent vector scaling
Implementations§
Trait Implementations§
Source§impl Clone for SimilarityMetric
impl Clone for SimilarityMetric
Source§fn clone(&self) -> SimilarityMetric
fn clone(&self) -> SimilarityMetric
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 SimilarityMetric
impl Debug for SimilarityMetric
Source§impl Default for SimilarityMetric
impl Default for SimilarityMetric
Source§impl PartialEq for SimilarityMetric
impl PartialEq for SimilarityMetric
impl Copy for SimilarityMetric
impl StructuralPartialEq for SimilarityMetric
Auto Trait Implementations§
impl Freeze for SimilarityMetric
impl RefUnwindSafe for SimilarityMetric
impl Send for SimilarityMetric
impl Sync for SimilarityMetric
impl Unpin for SimilarityMetric
impl UnwindSafe for SimilarityMetric
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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