pub struct TopKCollector { /* private fields */ }Expand description
Collector for top-k results
Implementations§
Source§impl TopKCollector
impl TopKCollector
pub fn new(k: usize) -> Self
Sourcepub fn with_positions(k: usize) -> Self
pub fn with_positions(k: usize) -> Self
Create a collector that also collects positions
Sourcepub fn total_seen(&self) -> u32
pub fn total_seen(&self) -> u32
Get the total number of documents seen (scored) by this collector
pub fn into_sorted_results(self) -> Vec<SearchResult>
Sourcepub fn into_results_with_count(self) -> (Vec<SearchResult>, u32)
pub fn into_results_with_count(self) -> (Vec<SearchResult>, u32)
Consume collector and return (sorted_results, total_seen)
Trait Implementations§
Source§impl Collector for TopKCollector
impl Collector for TopKCollector
Source§fn ranked_count_limit(&self) -> Option<usize>
fn ranked_count_limit(&self) -> Option<usize>
Opt into exact counting separately from ranked collection. A finite
limit promises that retaining this many highest ranked matches is enough.
Custom collectors keep exhaustive callbacks by default.
Source§fn collect_omitted_count(&mut self, count: u64)
fn collect_omitted_count(&mut self, count: u64)
Account for exact matches omitted by the ranked path. Called only after
ranked_count_limit opts in; must preserve every count/total_seen field.
Source§fn supports_score_blocks(&self) -> bool
fn supports_score_blocks(&self) -> bool
Opt into bounded score blocks when positions and per-hit deadline
checks are unnecessary. Custom collectors retain per-document calls.
Tuple children opting in permit calls to be grouped by collector.
Source§fn collect_score_block(&mut self, base: DocId, scores: &[Score; 64], bits: u64)
fn collect_score_block(&mut self, base: DocId, scores: &[Score; 64], bits: u64)
Collect set bits in increasing document order, with
scores[i] for
document base + i. Set bits must address valid document IDs.
The driver calls this only after supports_score_blocks returns true.Source§fn collect(
&mut self,
doc_id: DocId,
score: Score,
positions: &[(u32, Vec<ScoredPosition>)],
)
fn collect( &mut self, doc_id: DocId, score: Score, positions: &[(u32, Vec<ScoredPosition>)], )
Called for each matching document
positions: Vec of (field_id, scored_positions)
Source§fn would_collect(&self, doc_id: DocId, score: Score) -> bool
fn would_collect(&self, doc_id: DocId, score: Score) -> bool
Whether this score can enter the collector’s retained result set. Read more
Source§fn collect_owned(
&mut self,
doc_id: DocId,
score: Score,
positions: MatchedPositions,
)
fn collect_owned( &mut self, doc_id: DocId, score: Score, positions: MatchedPositions, )
Collect already-owned positions. Position-aware collectors can override
this to move the nested vectors instead of cloning them.
Source§fn needs_positions(&self) -> bool
fn needs_positions(&self) -> bool
Whether this collector needs position information
Source§fn collect_count(&mut self, _count: u64) -> bool
fn collect_count(&mut self, _count: u64) -> bool
Accept a known exact number of matches without visiting documents.
Return false without changing state to request ordinary collection.
This is only offered to score- and position-free collectors.
Source§fn needs_scores(&self) -> bool
fn needs_scores(&self) -> bool
Whether this collector consumes scores. Returning false permits the
driver to pass 0.0 without evaluating BM25. Position consumers still
force scoring; custom collectors retain the previous behavior by default.
Auto Trait Implementations§
impl Freeze for TopKCollector
impl RefUnwindSafe for TopKCollector
impl Send for TopKCollector
impl Sync for TopKCollector
impl Unpin for TopKCollector
impl UnsafeUnpin for TopKCollector
impl UnwindSafe for TopKCollector
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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