1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use crate::docset::DocSet; /// Postings (also called inverted list) /// /// For a given term, it is the list of doc ids of the doc /// containing the term. Optionally, for each document, /// it may also give access to the term frequency /// as well as the list of term positions. /// /// Its main implementation is `SegmentPostings`, /// but other implementations mocking `SegmentPostings` exist, /// for merging segments or for testing. pub trait Postings: DocSet + 'static { /// Returns the term frequency fn term_freq(&self) -> u32; /// Returns the positions offseted with a given value. /// The output vector will be resized to the `term_freq`. fn positions_with_offset(&mut self, offset: u32, output: &mut Vec<u32>); /// Returns the positions of the term in the given document. /// The output vector will be resized to the `term_freq`. fn positions(&mut self, output: &mut Vec<u32>) { self.positions_with_offset(0u32, output); } }