pub struct BlockSparsePostingList { /* private fields */ }Expand description
Block-based sparse posting list for skip-list style access
Similar to BlockPostingList but stores quantized weights. Includes block-max metadata for Block-Max WAND optimization.
Implementations§
Source§impl BlockSparsePostingList
impl BlockSparsePostingList
Sourcepub fn from_postings(
postings: &[(DocId, f32)],
quantization: WeightQuantization,
) -> Result<Self>
pub fn from_postings( postings: &[(DocId, f32)], quantization: WeightQuantization, ) -> Result<Self>
Build from postings with specified quantization
Sourcepub fn deserialize<R: Read>(reader: &mut R) -> Result<Self>
pub fn deserialize<R: Read>(reader: &mut R) -> Result<Self>
Deserialize from bytes
Sourcepub fn num_blocks(&self) -> usize
pub fn num_blocks(&self) -> usize
Number of blocks
Sourcepub fn quantization(&self) -> WeightQuantization
pub fn quantization(&self) -> WeightQuantization
Get quantization format
Sourcepub fn global_max_weight(&self) -> f32
pub fn global_max_weight(&self) -> f32
Global maximum weight across all blocks (for MaxScore pruning)
Sourcepub fn block_max_weight(&self, block_idx: usize) -> Option<f32>
pub fn block_max_weight(&self, block_idx: usize) -> Option<f32>
Get block-max weight for a specific block
Sourcepub fn max_contribution(&self, query_weight: f32) -> f32
pub fn max_contribution(&self, query_weight: f32) -> f32
Compute maximum possible contribution to dot product with given query weight
This is used for MaxScore pruning: if query_weight * global_max_weight < threshold,
this entire dimension can be skipped.
Sourcepub fn iterator(&self) -> BlockSparsePostingIterator<'_>
pub fn iterator(&self) -> BlockSparsePostingIterator<'_>
Create an iterator
Sourcepub fn size_bytes(&self) -> usize
pub fn size_bytes(&self) -> usize
Approximate size in bytes
Sourcepub fn concatenate(
sources: &[(BlockSparsePostingList, u32)],
target_quantization: WeightQuantization,
) -> Result<Self>
pub fn concatenate( sources: &[(BlockSparsePostingList, u32)], target_quantization: WeightQuantization, ) -> Result<Self>
Concatenate multiple posting lists with doc_id remapping
Trait Implementations§
Source§impl Clone for BlockSparsePostingList
impl Clone for BlockSparsePostingList
Source§fn clone(&self) -> BlockSparsePostingList
fn clone(&self) -> BlockSparsePostingList
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 moreAuto Trait Implementations§
impl Freeze for BlockSparsePostingList
impl RefUnwindSafe for BlockSparsePostingList
impl Send for BlockSparsePostingList
impl Sync for BlockSparsePostingList
impl Unpin for BlockSparsePostingList
impl UnwindSafe for BlockSparsePostingList
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 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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.