pub struct Count;
Expand description
CountCollector
collector only counts how many
documents match the query.
use tantivy::collector::Count;
use tantivy::query::QueryParser;
use tantivy::schema::{Schema, TEXT};
use tantivy::{doc, Index};
let mut schema_builder = Schema::builder();
let title = schema_builder.add_text_field("title", TEXT);
let schema = schema_builder.build();
let index = Index::create_in_ram(schema);
let mut index_writer = index.writer(3_000_000).unwrap();
index_writer.add_document(doc!(title => "The Name of the Wind")).unwrap();
index_writer.add_document(doc!(title => "The Diary of Muadib")).unwrap();
index_writer.add_document(doc!(title => "A Dairy Cow")).unwrap();
index_writer.add_document(doc!(title => "The Diary of a Young Girl")).unwrap();
assert!(index_writer.commit().is_ok());
let reader = index.reader().unwrap();
let searcher = reader.searcher();
// Here comes the important part
let query_parser = QueryParser::for_index(&index, vec![title]);
let query = query_parser.parse_query("diary").unwrap();
let count = searcher.search(&query, &Count).unwrap();
assert_eq!(count, 2);
Trait Implementations
sourceimpl Collector for Count
impl Collector for Count
type Fruit = usize
type Fruit = usize
Fruit
is the type for the result of our collection.
e.g. usize
for the Count
collector. Read more
type Child = SegmentCountCollector
type Child = SegmentCountCollector
Type of the SegmentCollector
associated to this collector.
sourcefn for_segment(
&self,
_: SegmentOrdinal,
_: &SegmentReader
) -> Result<SegmentCountCollector>
fn for_segment(
&self,
_: SegmentOrdinal,
_: &SegmentReader
) -> Result<SegmentCountCollector>
set_segment
is called before beginning to enumerate
on this segment. Read more
sourcefn requires_scoring(&self) -> bool
fn requires_scoring(&self) -> bool
Returns true iff the collector requires to compute scores for documents.
sourcefn merge_fruits(&self, segment_counts: Vec<usize>) -> Result<usize>
fn merge_fruits(&self, segment_counts: Vec<usize>) -> Result<usize>
Combines the fruit associated to the collection of each segments into one fruit. Read more
sourcefn collect_segment(
&self,
weight: &dyn Weight,
segment_ord: u32,
reader: &SegmentReader
) -> Result<<Self::Child as SegmentCollector>::Fruit>
fn collect_segment(
&self,
weight: &dyn Weight,
segment_ord: u32,
reader: &SegmentReader
) -> Result<<Self::Child as SegmentCollector>::Fruit>
Created a segment collector and
Auto Trait Implementations
impl RefUnwindSafe for Count
impl Send for Count
impl Sync for Count
impl Unpin for Count
impl UnwindSafe for Count
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more