pub struct IvfPqIndex { /* private fields */ }Expand description
IVF-PQ Hybrid Index
Implementations§
Source§impl IvfPqIndex
impl IvfPqIndex
Sourcepub fn new(config: IvfPqConfig) -> Self
pub fn new(config: IvfPqConfig) -> Self
Create a new IVF-PQ index
Sourcepub fn is_trained(&self) -> bool
pub fn is_trained(&self) -> bool
Check if the index is trained
Sourcepub fn stats(&self) -> IvfPqStats
pub fn stats(&self) -> IvfPqStats
Get statistics about the index
Sourcepub fn train(&mut self, vectors: &[Vector]) -> Result<(), String>
pub fn train(&mut self, vectors: &[Vector]) -> Result<(), String>
Train the index on a set of vectors
This performs:
- K-means clustering to learn IVF centroids
- Compute residuals (vectors - their assigned centroid)
- Train PQ on the residuals
Auto Trait Implementations§
impl Freeze for IvfPqIndex
impl !RefUnwindSafe for IvfPqIndex
impl Send for IvfPqIndex
impl Sync for IvfPqIndex
impl Unpin for IvfPqIndex
impl UnsafeUnpin for IvfPqIndex
impl UnwindSafe for IvfPqIndex
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