Trait tantivy::DocSet

source ·
pub trait DocSet: Send {
    // Required methods
    fn advance(&mut self) -> DocId;
    fn doc(&self) -> DocId;
    fn size_hint(&self) -> u32;

    // Provided methods
    fn seek(&mut self, target: DocId) -> DocId { ... }
    fn fill_buffer(&mut self, buffer: &mut [DocId; 64]) -> usize { ... }
    fn count(&mut self, alive_bitset: &AliveBitSet) -> u32 { ... }
    fn count_including_deleted(&mut self) -> u32 { ... }
}
Expand description

Represents an iterable set of sorted doc ids.

Required Methods§

source

fn advance(&mut self) -> DocId

Goes to the next element.

The DocId of the next element is returned. In other words we should always have :

let doc = docset.advance();
assert_eq!(doc, docset.doc());

If we reached the end of the DocSet, TERMINATED should be returned.

Calling .advance() on a terminated DocSet should be supported, and TERMINATED should be returned.

source

fn doc(&self) -> DocId

Returns the current document Right after creating a new DocSet, the docset points to the first document.

If the DocSet is empty, .doc() should return TERMINATED.

source

fn size_hint(&self) -> u32

Returns a best-effort hint of the length of the docset.

Provided Methods§

source

fn seek(&mut self, target: DocId) -> DocId

Advances the DocSet forward until reaching the target, or going to the lowest DocId greater than the target.

If the end of the DocSet is reached, TERMINATED is returned.

Calling .seek(target) on a terminated DocSet is legal. Implementation of DocSet should support it.

Calling seek(TERMINATED) is also legal and is the normal way to consume a DocSet.

source

fn fill_buffer(&mut self, buffer: &mut [DocId; 64]) -> usize

Fills a given mutable buffer with the next doc ids from the DocSet

If that many DocIds 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().

source

fn count(&mut self, alive_bitset: &AliveBitSet) -> u32

Returns the number documents matching. Calling this method consumes the DocSet.

source

fn count_including_deleted(&mut self) -> u32

Returns the count of documents, deleted or not. Calling this method consumes the DocSet.

Of course, the result is an upper bound of the result given by count().

Trait Implementations§

source§

impl<'a> DocSet for &'a mut dyn DocSet

source§

fn advance(&mut self) -> u32

Goes to the next element. Read more
source§

fn seek(&mut self, target: DocId) -> DocId

Advances the DocSet forward until reaching the target, or going to the lowest DocId greater than the target. Read more
source§

fn doc(&self) -> u32

Returns the current document Right after creating a new DocSet, the docset points to the first document. Read more
source§

fn size_hint(&self) -> u32

Returns a best-effort hint of the length of the docset.
source§

fn count(&mut self, alive_bitset: &AliveBitSet) -> u32

Returns the number documents matching. Calling this method consumes the DocSet.
source§

fn count_including_deleted(&mut self) -> u32

Returns the count of documents, deleted or not. Calling this method consumes the DocSet. Read more
source§

fn fill_buffer(&mut self, buffer: &mut [DocId; 64]) -> usize

Fills a given mutable buffer with the next doc ids from the DocSet Read more

Implementations on Foreign Types§

source§

impl<TDocSet: DocSet + ?Sized> DocSet for Box<TDocSet>

source§

fn advance(&mut self) -> DocId

source§

fn seek(&mut self, target: DocId) -> DocId

source§

fn fill_buffer(&mut self, buffer: &mut [DocId; 64]) -> usize

source§

fn doc(&self) -> DocId

source§

fn size_hint(&self) -> u32

source§

fn count(&mut self, alive_bitset: &AliveBitSet) -> u32

source§

fn count_including_deleted(&mut self) -> u32

Implementors§

source§

impl DocSet for SegmentPostings

source§

impl DocSet for AllScorer

source§

impl DocSet for BitSetDocSet

source§

impl DocSet for EmptyScorer

source§

impl<'a> DocSet for &'a mut dyn DocSet

source§

impl<TDocSet, TDocSetExclude> DocSet for Exclude<TDocSet, TDocSetExclude>
where TDocSet: DocSet, TDocSetExclude: DocSet,

source§

impl<TDocSet: DocSet> DocSet for ConstScorer<TDocSet>

source§

impl<TDocSet: DocSet, TOtherDocSet: DocSet> DocSet for Intersection<TDocSet, TOtherDocSet>

source§

impl<TReqScorer, TOptScorer, TScoreCombiner> DocSet for RequiredOptionalScorer<TReqScorer, TOptScorer, TScoreCombiner>
where TReqScorer: DocSet, TOptScorer: DocSet, TScoreCombiner: ScoreCombiner,

source§

impl<TScorer, TScoreCombiner> DocSet for Union<TScorer, TScoreCombiner>
where TScorer: Scorer, TScoreCombiner: ScoreCombiner,