Trait tantivy::DocSet [−][src]
pub trait DocSet { fn advance(&mut self) -> bool; fn doc(&self) -> DocId; fn size_hint(&self) -> u32; fn skip_next(&mut self, target: DocId) -> SkipResult { ... } fn fill_buffer(&mut self, buffer: &mut [DocId]) -> usize { ... } fn append_to_bitset(&mut self, bitset: &mut BitSet) { ... } fn count(&mut self) -> u32 { ... } }
Represents an iterable set of sorted doc ids.
Required Methods
fn advance(&mut self) -> bool
Goes to the next element.
.advance(...)
needs to be called a first time to point to the correct
element.
fn doc(&self) -> DocId
Returns the current document
fn size_hint(&self) -> u32
Returns a best-effort hint of the length of the docset.
Provided Methods
fn skip_next(&mut self, target: DocId) -> SkipResult
After skipping, position the iterator in such a way that .doc()
will return a value greater than or equal to target.
SkipResult expresses whether the target value
was reached, overstepped,
or if the DocSet
was entirely consumed without finding any value
greater or equal to the target
.
WARNING: Calling skip always advances the docset. More specifically, if the docset is already positionned on the target skipping will advance to the next position and return SkipResult::Overstep.
If .skip_next()
oversteps, then the docset must be positionned correctly
on an existing document. In other words, .doc()
should return the first document
greater than DocId
.
fn fill_buffer(&mut self, buffer: &mut [DocId]) -> usize
Fills a given mutable buffer with the next doc ids from the
DocSet
If that many DocId
s are available, the method should
fill the entire buffer and return the length of the buffer.
If we reach the end of the DocSet
before filling
it entirely, then the buffer is filled up to this point, and
return value is the number of elements that were filled.
Warning
This method is only here for specific high-performance
use case where batching. The normal way to
go through the DocId
's is to call .advance()
.
fn append_to_bitset(&mut self, bitset: &mut BitSet)
Appends all docs to a bitset
.
fn count(&mut self) -> u32
Returns the number documents matching.
Calling this method consumes the DocSet
.
Implementations on Foreign Types
impl<TDocSet: DocSet + ?Sized> DocSet for Box<TDocSet>
[src]
impl<TDocSet: DocSet + ?Sized> DocSet for Box<TDocSet>
Implementors
impl DocSet for SegmentPostings
impl DocSet for AllScorer
impl DocSet for BitSetDocSet
impl<TDocSet, TDocSetExclude> DocSet for Exclude<TDocSet, TDocSetExclude> where
TDocSet: DocSet,
TDocSetExclude: DocSet,impl<TDocSet: DocSet, TOtherDocSet: DocSet> DocSet for Intersection<TDocSet, TOtherDocSet>
impl<TReqScorer, TOptScorer, TScoreCombiner> DocSet for RequiredOptionalScorer<TReqScorer, TOptScorer, TScoreCombiner> where
TReqScorer: DocSet,
TOptScorer: DocSet,impl DocSet for EmptyScorer
impl<TDocSet: DocSet> DocSet for ConstScorer<TDocSet>
impl<TScorer, TScoreCombiner> DocSet for Union<TScorer, TScoreCombiner> where
TScorer: Scorer,
TScoreCombiner: ScoreCombiner,