pub struct IvfPqConfig {
pub nclusters: usize,
pub nsubvectors: usize,
pub nbits: usize,
pub nprobe: usize,
pub metric: DistanceMetric,
pub max_kmeans_iterations: usize,
pub kmeans_tolerance: f32,
}Expand description
IVF-PQ configuration
Fields§
§nclusters: usizeNumber of clusters (partitions) for IVF Typical values: 256, 1024, 4096 More clusters = faster search but more memory
nsubvectors: usizeNumber of sub-vectors for product quantization Typical values: 8, 16, 32, 64 More sub-vectors = better accuracy but more memory
nbits: usizeNumber of bits per sub-vector quantizer Typical value: 8 (256 centroids per sub-quantizer)
nprobe: usizeNumber of clusters to probe during search Typical values: 1, 4, 16, 64 More probes = better recall but slower search
metric: DistanceMetricDistance metric for clustering and search
max_kmeans_iterations: usizeMax iterations for k-means clustering
kmeans_tolerance: f32Convergence threshold for k-means
Implementations§
Source§impl IvfPqConfig
impl IvfPqConfig
pub fn with_nclusters(self, nclusters: usize) -> Self
pub fn with_nsubvectors(self, nsubvectors: usize) -> Self
pub fn with_nbits(self, nbits: usize) -> Self
pub fn with_nprobe(self, nprobe: usize) -> Self
pub fn with_metric(self, metric: DistanceMetric) -> Self
Trait Implementations§
Source§impl Clone for IvfPqConfig
impl Clone for IvfPqConfig
Source§fn clone(&self) -> IvfPqConfig
fn clone(&self) -> IvfPqConfig
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 IvfPqConfig
impl Debug for IvfPqConfig
Source§impl Default for IvfPqConfig
impl Default for IvfPqConfig
Source§impl<'de> Deserialize<'de> for IvfPqConfig
impl<'de> Deserialize<'de> for IvfPqConfig
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 IvfPqConfig
impl RefUnwindSafe for IvfPqConfig
impl Send for IvfPqConfig
impl Sync for IvfPqConfig
impl Unpin for IvfPqConfig
impl UnwindSafe for IvfPqConfig
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