pub struct BloomPruner;Expand description
File-level BM25 Bloom filter pruner (Phase F).
Given a map of file_path → BloomFilter loaded from the Puffin stats file,
removes files where no query term can possibly appear. Zero false negatives:
if a term is in the file, the Bloom filter will return true. Files without
a Bloom filter entry are kept (conservative fallback for V2 tables or files
written before Phase F).
Implementations§
Source§impl BloomPruner
impl BloomPruner
Sourcepub fn prune(
files: Vec<DataFileEntry>,
query_text: &str,
bloom_map: &HashMap<String, BloomFilter>,
) -> Vec<DataFileEntry>
pub fn prune( files: Vec<DataFileEntry>, query_text: &str, bloom_map: &HashMap<String, BloomFilter>, ) -> Vec<DataFileEntry>
Skip files whose Bloom filter guarantees no query term is present.
Returns the subset of files that may contain at least one query term.
Files absent from bloom_map are always kept.
Auto Trait Implementations§
impl Freeze for BloomPruner
impl RefUnwindSafe for BloomPruner
impl Send for BloomPruner
impl Sync for BloomPruner
impl Unpin for BloomPruner
impl UnsafeUnpin for BloomPruner
impl UnwindSafe for BloomPruner
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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