pub struct LSH { /* private fields */ }Expand description
Locality Sensitive Hashing for approximate nearest neighbor search
Implementations§
Source§impl LSH
impl LSH
Sourcepub fn new(vector_dim: usize, num_tables: usize, hash_size: usize) -> Self
pub fn new(vector_dim: usize, num_tables: usize, hash_size: usize) -> Self
Create a new LSH index with dynamic sizing
Sourcepub fn with_expected_size(
vector_dim: usize,
num_tables: usize,
hash_size: usize,
expected_size: usize,
) -> Self
pub fn with_expected_size( vector_dim: usize, num_tables: usize, hash_size: usize, expected_size: usize, ) -> Self
Create a new LSH index with expected dataset size for optimal memory allocation
Sourcepub fn add_vector(&mut self, vector: Array1<f32>, data: f32)
pub fn add_vector(&mut self, vector: Array1<f32>, data: f32)
Add a vector to the LSH index with dynamic resizing
Sourcepub fn query(
&self,
query_vector: &Array1<f32>,
k: usize,
) -> Vec<(Array1<f32>, f32, f32)>
pub fn query( &self, query_vector: &Array1<f32>, k: usize, ) -> Vec<(Array1<f32>, f32, f32)>
Find approximate nearest neighbors
Sourcepub fn save_to_database(&self, db: &Database) -> Result<(), Box<dyn Error>>
pub fn save_to_database(&self, db: &Database) -> Result<(), Box<dyn Error>>
Save LSH configuration and hash functions to database
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LSH
impl RefUnwindSafe for LSH
impl Send for LSH
impl Sync for LSH
impl Unpin for LSH
impl UnwindSafe for LSH
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