pub struct VerticalBP128Block {
pub doc_data: Vec<u8>,
pub doc_bit_width: u8,
pub tf_data: Vec<u8>,
pub tf_bit_width: u8,
pub first_doc_id: u32,
pub last_doc_id: u32,
pub num_docs: u16,
pub max_tf: u32,
pub max_block_score: f32,
}Expand description
A single SIMD-BP128 block with metadata
Fields§
§doc_data: Vec<u8>Vertically-packed delta-encoded doc_ids (true vertical bit-interleaved layout)
doc_bit_width: u8Bit width for doc deltas
tf_data: Vec<u8>Vertically-packed term frequencies (tf - 1)
tf_bit_width: u8Bit width for term frequencies
first_doc_id: u32First doc_id in block (absolute)
last_doc_id: u32Last doc_id in block (absolute)
num_docs: u16Number of docs in this block
max_tf: u32Maximum term frequency in block
max_block_score: f32Maximum BM25 score upper bound for BlockMax WAND
Implementations§
Source§impl VerticalBP128Block
impl VerticalBP128Block
Sourcepub fn deserialize<R: Read>(reader: &mut R) -> Result<Self>
pub fn deserialize<R: Read>(reader: &mut R) -> Result<Self>
Deserialize block
Sourcepub fn decode_doc_ids(&self) -> Vec<u32>
pub fn decode_doc_ids(&self) -> Vec<u32>
Decode doc_ids from this block
Sourcepub fn decode_doc_ids_into(&self, output: &mut [u32]) -> usize
pub fn decode_doc_ids_into(&self, output: &mut [u32]) -> usize
Decode doc_ids into a pre-allocated buffer (avoids allocation)
Sourcepub fn decode_term_freqs(&self) -> Vec<u32>
pub fn decode_term_freqs(&self) -> Vec<u32>
Decode term frequencies from this block
Sourcepub fn decode_term_freqs_into(&self, output: &mut [u32]) -> usize
pub fn decode_term_freqs_into(&self, output: &mut [u32]) -> usize
Decode term frequencies into a pre-allocated buffer (avoids allocation)
Trait Implementations§
Source§impl Clone for VerticalBP128Block
impl Clone for VerticalBP128Block
Source§fn clone(&self) -> VerticalBP128Block
fn clone(&self) -> VerticalBP128Block
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 VerticalBP128Block
impl RefUnwindSafe for VerticalBP128Block
impl Send for VerticalBP128Block
impl Sync for VerticalBP128Block
impl Unpin for VerticalBP128Block
impl UnwindSafe for VerticalBP128Block
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