pub struct SparseVectorConfig {
pub index_size: IndexSize,
pub weight_quantization: WeightQuantization,
pub weight_threshold: f32,
pub posting_list_pruning: Option<f32>,
pub query_config: Option<SparseQueryConfig>,
}Expand description
Configuration for sparse vector storage
Fields§
§index_size: IndexSizeSize of dimension/term indices
weight_quantization: WeightQuantizationQuantization for weights
weight_threshold: f32Minimum weight threshold - weights below this value are not indexed This reduces index size and can improve query speed at the cost of recall
posting_list_pruning: Option<f32>Static pruning: fraction of postings to keep per inverted list (SEISMIC-style) Lists are sorted by weight descending and truncated to top fraction.
- None = keep all postings (default, exact)
- Some(0.1) = keep top 10% of postings per dimension
Applied only during initial segment build, not during merge. This exploits “concentration of importance” - top entries preserve most of inner product.
query_config: Option<SparseQueryConfig>Query-time configuration (tokenizer, weighting)
Implementations§
Source§impl SparseVectorConfig
impl SparseVectorConfig
Sourcepub fn full_precision() -> Self
pub fn full_precision() -> Self
Full precision config
Sourcepub fn with_weight_threshold(self, threshold: f32) -> Self
pub fn with_weight_threshold(self, threshold: f32) -> Self
Set weight threshold (builder pattern)
Sourcepub fn with_pruning(self, fraction: f32) -> Self
pub fn with_pruning(self, fraction: f32) -> Self
Set posting list pruning fraction (builder pattern) e.g., 0.1 = keep top 10% of postings per dimension
Sourcepub fn bytes_per_entry(&self) -> f32
pub fn bytes_per_entry(&self) -> f32
Bytes per entry (index + weight)
Sourcepub fn from_byte(b: u8) -> Option<Self>
pub fn from_byte(b: u8) -> Option<Self>
Deserialize config from a single byte Note: weight_threshold and query_config are not serialized in the byte
Sourcepub fn with_query_config(self, config: SparseQueryConfig) -> Self
pub fn with_query_config(self, config: SparseQueryConfig) -> Self
Set query configuration (builder pattern)
Trait Implementations§
Source§impl Clone for SparseVectorConfig
impl Clone for SparseVectorConfig
Source§fn clone(&self) -> SparseVectorConfig
fn clone(&self) -> SparseVectorConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SparseVectorConfig
impl Debug for SparseVectorConfig
Source§impl Default for SparseVectorConfig
impl Default for SparseVectorConfig
Source§impl<'de> Deserialize<'de> for SparseVectorConfig
impl<'de> Deserialize<'de> for SparseVectorConfig
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>,
Source§impl PartialEq for SparseVectorConfig
impl PartialEq for SparseVectorConfig
Source§impl Serialize for SparseVectorConfig
impl Serialize for SparseVectorConfig
impl StructuralPartialEq for SparseVectorConfig
Auto Trait Implementations§
impl Freeze for SparseVectorConfig
impl RefUnwindSafe for SparseVectorConfig
impl Send for SparseVectorConfig
impl Sync for SparseVectorConfig
impl Unpin for SparseVectorConfig
impl UnwindSafe for SparseVectorConfig
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
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>
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>
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> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.