diff --git a/src/core/mod.rs b/src/core/mod.rs index e0fe08e6c..d94112b32 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -12,7 +12,7 @@ pub use self::executor::Executor; pub use self::index::Index; pub use self::index_meta::{IndexMeta, SegmentMeta, SegmentMetaInventory}; pub use self::inverted_index_reader::InvertedIndexReader; -pub use self::searcher::Searcher; +pub use self::searcher::{FieldSearcher, Searcher}; pub use self::segment::Segment; pub use self::segment::SerializableSegment; pub use self::segment_component::SegmentComponent; diff --git a/src/core/searcher.rs b/src/core/searcher.rs index 925e4c4e7..335b191a7 100644 --- a/src/core/searcher.rs +++ b/src/core/searcher.rs @@ -168,6 +168,7 @@ impl Searcher { } } +/// **Experimental API** `FieldSearcher` only gives access to a stream over the terms of a field. pub struct FieldSearcher { inv_index_readers: Vec>, } @@ -179,7 +180,11 @@ impl FieldSearcher { /// Returns a Stream over all of the sorted unique terms of /// for the given field. - pub fn terms(&self) -> TermMerger<'_> { + /// + /// This method does not take in account which document are deleted, so + /// in presence of deletes some terms may not actually exist in any document + /// anymore. + pub fn terms(&self) -> TermMerger { let term_streamers: Vec<_> = self .inv_index_readers .iter() diff --git a/src/lib.rs b/src/lib.rs index f66b54712..fa14c9095 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -160,7 +160,7 @@ pub use self::docset::{DocSet, TERMINATED}; pub use crate::common::HasLen; pub use crate::common::{f64_to_u64, i64_to_u64, u64_to_f64, u64_to_i64}; pub use crate::core::{Executor, SegmentComponent}; -pub use crate::core::{Index, IndexMeta, Searcher, Segment, SegmentId, SegmentMeta}; +pub use crate::core::{FieldSearcher, Index, IndexMeta, Searcher, Segment, SegmentId, SegmentMeta}; pub use crate::core::{InvertedIndexReader, SegmentReader}; pub use crate::directory::Directory; pub use crate::indexer::operation::UserOperation;