pub struct ProductQuantizer { /* private fields */ }Expand description
Trained Product Quantizer
Implementations§
Source§impl ProductQuantizer
impl ProductQuantizer
Sourcepub fn train(
vectors: &[Vec<f32>],
config: PQConfig,
) -> Result<Self, DiskAnnError>
pub fn train( vectors: &[Vec<f32>], config: PQConfig, ) -> Result<Self, DiskAnnError>
Train a product quantizer on a set of vectors
Sourcepub fn encode_batch(&self, vectors: &[Vec<f32>]) -> Vec<Vec<u8>>
pub fn encode_batch(&self, vectors: &[Vec<f32>]) -> Vec<Vec<u8>>
Batch encode vectors (parallel)
Sourcepub fn asymmetric_distance(&self, query: &[f32], codes: &[u8]) -> f32
pub fn asymmetric_distance(&self, query: &[f32], codes: &[u8]) -> f32
Compute asymmetric distance between query and quantized vector This uses precomputed distance tables for efficiency
Sourcepub fn create_distance_table(&self, query: &[f32]) -> Vec<f32>
pub fn create_distance_table(&self, query: &[f32]) -> Vec<f32>
Create a distance lookup table for a query (for fast batch queries)
Returns: [num_subspaces][num_centroids] distance table
Sourcepub fn distance_with_table(&self, table: &[f32], codes: &[u8]) -> f32
pub fn distance_with_table(&self, table: &[f32], codes: &[u8]) -> f32
Compute distance using precomputed table (very fast)
Sourcepub fn load(path: &str) -> Result<Self, DiskAnnError>
pub fn load(path: &str) -> Result<Self, DiskAnnError>
Load quantizer from file
Trait Implementations§
Source§impl Clone for ProductQuantizer
impl Clone for ProductQuantizer
Source§fn clone(&self) -> ProductQuantizer
fn clone(&self) -> ProductQuantizer
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<'de> Deserialize<'de> for ProductQuantizer
impl<'de> Deserialize<'de> for ProductQuantizer
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ProductQuantizer
impl RefUnwindSafe for ProductQuantizer
impl Send for ProductQuantizer
impl Sync for ProductQuantizer
impl Unpin for ProductQuantizer
impl UnwindSafe for ProductQuantizer
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> 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