pub struct IvfIndex { /* private fields */ }Expand description
IVF Index for approximate nearest neighbor search
Implementations§
Source§impl IvfIndex
impl IvfIndex
Sourcepub fn with_dimension(dimension: usize) -> Self
pub fn with_dimension(dimension: usize) -> Self
Create with default config for given dimension
Sourcepub fn add_with_id(&mut self, id: NodeId, vector: Vec<f32>)
pub fn add_with_id(&mut self, id: NodeId, vector: Vec<f32>)
Add a vector with specific ID
Sourcepub fn add_batch_with_ids(&mut self, items: Vec<(NodeId, Vec<f32>)>)
pub fn add_batch_with_ids(&mut self, items: Vec<(NodeId, Vec<f32>)>)
Add multiple vectors with IDs
Sourcepub fn search(&self, query: &[f32], k: usize) -> Vec<DistanceResult>
pub fn search(&self, query: &[f32], k: usize) -> Vec<DistanceResult>
Search for k nearest neighbors
Sourcepub fn search_with_probes(
&self,
query: &[f32],
k: usize,
n_probes: usize,
) -> Vec<DistanceResult>
pub fn search_with_probes( &self, query: &[f32], k: usize, n_probes: usize, ) -> Vec<DistanceResult>
Search with custom number of probes
Sourcepub fn to_bytes(&self) -> Vec<u8> ⓘ
pub fn to_bytes(&self) -> Vec<u8> ⓘ
Serialize the index to bytes for storage.
The IVF1 payload byte layout is owned by reddb-file (ADR 0046); this
only projects the engine state into reddb_file::IvfIndexFrame.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self, String>
pub fn from_bytes(bytes: &[u8]) -> Result<Self, String>
Deserialize an index from bytes via the reddb-file codec.
Auto Trait Implementations§
impl Freeze for IvfIndex
impl RefUnwindSafe for IvfIndex
impl Send for IvfIndex
impl Sync for IvfIndex
impl Unpin for IvfIndex
impl UnsafeUnpin for IvfIndex
impl UnwindSafe for IvfIndex
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request