diff --git a/examples/custom_collector.rs b/examples/custom_collector.rs index d7d4cd10c..29b606930 100644 --- a/examples/custom_collector.rs +++ b/examples/custom_collector.rs @@ -11,9 +11,10 @@ use columnar::Column; // --- // Importing tantivy... use tantivy::collector::{Collector, SegmentCollector}; +use tantivy::index::SegmentReader; use tantivy::query::QueryParser; use tantivy::schema::{Schema, FAST, INDEXED, TEXT}; -use tantivy::{doc, Index, IndexWriter, Score, SegmentReader}; +use tantivy::{doc, Index, IndexWriter, Score}; #[derive(Default)] struct Stats { diff --git a/examples/date_time_field.rs b/examples/date_time_field.rs index d508bc80f..aba9411d3 100644 --- a/examples/date_time_field.rs +++ b/examples/date_time_field.rs @@ -13,7 +13,7 @@ fn main() -> tantivy::Result<()> { let opts = DateOptions::from(INDEXED) .set_stored() .set_fast() - .set_precision(tantivy::DateTimePrecision::Seconds); + .set_precision(tantivy::schema::DateTimePrecision::Seconds); // Add `occurred_at` date field type let occurred_at = schema_builder.add_date_field("occurred_at", opts); let event_type = schema_builder.add_text_field("event", STRING | STORED); diff --git a/examples/iterating_docs_and_positions.rs b/examples/iterating_docs_and_positions.rs index d3709a2b2..b58276614 100644 --- a/examples/iterating_docs_and_positions.rs +++ b/examples/iterating_docs_and_positions.rs @@ -7,10 +7,11 @@ // the list of documents containing a term, getting // its term frequency, and accessing its positions. +use tantivy::postings::Postings; // --- // Importing tantivy... use tantivy::schema::*; -use tantivy::{doc, DocSet, Index, IndexWriter, Postings, TERMINATED}; +use tantivy::{doc, DocSet, Index, IndexWriter, TERMINATED}; fn main() -> tantivy::Result<()> { // We first create a schema for the sake of the diff --git a/examples/warmer.rs b/examples/warmer.rs index 67bf157c5..1cae9d349 100644 --- a/examples/warmer.rs +++ b/examples/warmer.rs @@ -3,10 +3,11 @@ use std::collections::{HashMap, HashSet}; use std::sync::{Arc, RwLock, Weak}; use tantivy::collector::TopDocs; +use tantivy::index::SegmentId; use tantivy::query::QueryParser; use tantivy::schema::{Schema, FAST, TEXT}; use tantivy::{ - doc, DocAddress, DocId, Index, IndexWriter, Opstamp, Searcher, SearcherGeneration, SegmentId, + doc, DocAddress, DocId, Index, IndexWriter, Opstamp, Searcher, SearcherGeneration, SegmentReader, Warmer, }; diff --git a/src/aggregation/agg_req_with_accessor.rs b/src/aggregation/agg_req_with_accessor.rs index 4f8a7c6f0..64d9b8943 100644 --- a/src/aggregation/agg_req_with_accessor.rs +++ b/src/aggregation/agg_req_with_accessor.rs @@ -17,7 +17,8 @@ use super::metric::{ use super::segment_agg_result::AggregationLimits; use super::VecWithNames; use crate::aggregation::{f64_to_fastfield_u64, Key}; -use crate::{SegmentOrdinal, SegmentReader}; +use crate::index::SegmentReader; +use crate::SegmentOrdinal; #[derive(Default)] pub(crate) struct AggregationsWithAccessor { diff --git a/src/aggregation/collector.rs b/src/aggregation/collector.rs index d0e9ec5b8..2b9ee6f61 100644 --- a/src/aggregation/collector.rs +++ b/src/aggregation/collector.rs @@ -8,7 +8,8 @@ use super::segment_agg_result::{ }; use crate::aggregation::agg_req_with_accessor::get_aggs_with_segment_accessor_and_validate; use crate::collector::{Collector, SegmentCollector}; -use crate::{DocId, SegmentOrdinal, SegmentReader, TantivyError}; +use crate::index::SegmentReader; +use crate::{DocId, SegmentOrdinal, TantivyError}; /// The default max bucket count, before the aggregation fails. pub const DEFAULT_BUCKET_LIMIT: u32 = 65000; diff --git a/src/collector/top_collector.rs b/src/collector/top_collector.rs index 5a07e4218..4a399b27c 100644 --- a/src/collector/top_collector.rs +++ b/src/collector/top_collector.rs @@ -4,7 +4,8 @@ use std::marker::PhantomData; use serde::{Deserialize, Serialize}; use super::top_score_collector::TopNComputer; -use crate::{DocAddress, DocId, SegmentOrdinal, SegmentReader}; +use crate::index::SegmentReader; +use crate::{DocAddress, DocId, SegmentOrdinal}; /// Contains a feature (field, score, etc.) of a document along with the document address. /// diff --git a/src/core/searcher.rs b/src/core/searcher.rs index 8c5dad3da..56816145e 100644 --- a/src/core/searcher.rs +++ b/src/core/searcher.rs @@ -4,13 +4,13 @@ use std::{fmt, io}; use crate::collector::Collector; use crate::core::Executor; -use crate::index::SegmentReader; +use crate::index::{SegmentId, SegmentReader}; use crate::query::{Bm25StatisticsProvider, EnableScoring, Query}; use crate::schema::document::DocumentDeserialize; use crate::schema::{Schema, Term}; use crate::space_usage::SearcherSpaceUsage; use crate::store::{CacheStats, StoreReader}; -use crate::{DocAddress, Index, Opstamp, SegmentId, TrackedObject}; +use crate::{DocAddress, Index, Opstamp, TrackedObject}; /// Identifies the searcher generation accessed by a [`Searcher`]. /// diff --git a/src/core/tests.rs b/src/core/tests.rs index deb02ca4f..62baedf1d 100644 --- a/src/core/tests.rs +++ b/src/core/tests.rs @@ -1,12 +1,14 @@ use crate::collector::Count; use crate::directory::{RamDirectory, WatchCallback}; +use crate::index::SegmentId; use crate::indexer::{LogMergePolicy, NoMergePolicy}; +use crate::postings::Postings; use crate::query::TermQuery; use crate::schema::{Field, IndexRecordOption, Schema, INDEXED, STRING, TEXT}; use crate::tokenizer::TokenizerManager; use crate::{ - Directory, DocSet, Index, IndexBuilder, IndexReader, IndexSettings, IndexWriter, Postings, - ReloadPolicy, SegmentId, TantivyDocument, Term, + Directory, DocSet, Index, IndexBuilder, IndexReader, IndexSettings, IndexWriter, ReloadPolicy, + TantivyDocument, Term, }; #[test] diff --git a/src/fastfield/mod.rs b/src/fastfield/mod.rs index e0689650b..e7ad2e413 100644 --- a/src/fastfield/mod.rs +++ b/src/fastfield/mod.rs @@ -80,7 +80,7 @@ mod tests { use std::path::Path; use columnar::StrColumn; - use common::{ByteCount, HasLen, TerminatingWrite}; + use common::{ByteCount, DateTimePrecision, HasLen, TerminatingWrite}; use once_cell::sync::Lazy; use rand::prelude::SliceRandom; use rand::rngs::StdRng; @@ -88,14 +88,15 @@ mod tests { use super::*; use crate::directory::{Directory, RamDirectory, WritePtr}; + use crate::index::SegmentId; use crate::merge_policy::NoMergePolicy; use crate::schema::{ - Facet, FacetOptions, Field, JsonObjectOptions, Schema, SchemaBuilder, TantivyDocument, - TextOptions, FAST, INDEXED, STORED, STRING, TEXT, + DateOptions, Facet, FacetOptions, Field, JsonObjectOptions, Schema, SchemaBuilder, + TantivyDocument, TextOptions, FAST, INDEXED, STORED, STRING, TEXT, }; use crate::time::OffsetDateTime; use crate::tokenizer::{LowerCaser, RawTokenizer, TextAnalyzer, TokenizerManager}; - use crate::{DateOptions, DateTimePrecision, Index, IndexWriter, SegmentId, SegmentReader}; + use crate::{Index, IndexWriter, SegmentReader}; pub static SCHEMA: Lazy = Lazy::new(|| { let mut schema_builder = Schema::builder(); diff --git a/src/fastfield/writer.rs b/src/fastfield/writer.rs index ca0da8145..8212f2b2f 100644 --- a/src/fastfield/writer.rs +++ b/src/fastfield/writer.rs @@ -1,14 +1,14 @@ use std::io; use columnar::{ColumnarWriter, NumericalValue}; -use common::JsonPathWriter; +use common::{DateTimePrecision, JsonPathWriter}; use tokenizer_api::Token; use crate::indexer::doc_id_mapping::DocIdMapping; use crate::schema::document::{Document, ReferenceValue, ReferenceValueLeaf, Value}; use crate::schema::{value_type_to_column_type, Field, FieldType, Schema, Type}; use crate::tokenizer::{TextAnalyzer, TokenizerManager}; -use crate::{DateTimePrecision, DocId, TantivyError}; +use crate::{DocId, TantivyError}; /// Only index JSON down to a depth of 20. /// This is mostly to guard us from a stack overflow triggered by malicious input. diff --git a/src/index/mod.rs b/src/index/mod.rs index 89e71d2c8..fcd9a1475 100644 --- a/src/index/mod.rs +++ b/src/index/mod.rs @@ -1,5 +1,3 @@ -//! # Index Module -//! //! The `index` module in Tantivy contains core components to read and write indexes. //! //! It contains `Index` and `Segment`, where a `Index` consists of one or more `Segment`s. diff --git a/src/indexer/delete_queue.rs b/src/indexer/delete_queue.rs index cfac8e479..4f8a8a383 100644 --- a/src/indexer/delete_queue.rs +++ b/src/indexer/delete_queue.rs @@ -246,8 +246,9 @@ impl DeleteCursor { mod tests { use super::{DeleteOperation, DeleteQueue}; + use crate::index::SegmentReader; use crate::query::{Explanation, Scorer, Weight}; - use crate::{DocId, Score, SegmentReader}; + use crate::{DocId, Score}; struct DummyWeight; impl Weight for DummyWeight { diff --git a/src/indexer/log_merge_policy.rs b/src/indexer/log_merge_policy.rs index 726deb578..70488285e 100644 --- a/src/indexer/log_merge_policy.rs +++ b/src/indexer/log_merge_policy.rs @@ -144,9 +144,9 @@ mod tests { use once_cell::sync::Lazy; use super::*; - use crate::index::SegmentMetaInventory; + use crate::index::{SegmentId, SegmentMetaInventory}; + use crate::schema; use crate::schema::INDEXED; - use crate::{schema, SegmentId}; static INVENTORY: Lazy = Lazy::new(SegmentMetaInventory::default); diff --git a/src/indexer/merge_operation.rs b/src/indexer/merge_operation.rs index 90e5ee86c..a4ce49c93 100644 --- a/src/indexer/merge_operation.rs +++ b/src/indexer/merge_operation.rs @@ -1,7 +1,8 @@ use std::collections::HashSet; use std::ops::Deref; -use crate::{Inventory, Opstamp, SegmentId, TrackedObject}; +use crate::index::SegmentId; +use crate::{Inventory, Opstamp, TrackedObject}; #[derive(Default)] pub(crate) struct MergeOperationInventory(Inventory); diff --git a/src/indexer/merger.rs b/src/indexer/merger.rs index 4cc455713..9dd027a59 100644 --- a/src/indexer/merger.rs +++ b/src/indexer/merger.rs @@ -13,7 +13,7 @@ use crate::docset::{DocSet, TERMINATED}; use crate::error::DataCorruption; use crate::fastfield::{AliveBitSet, FastFieldNotAvailableError}; use crate::fieldnorm::{FieldNormReader, FieldNormReaders, FieldNormsSerializer, FieldNormsWriter}; -use crate::index::{Segment, SegmentReader}; +use crate::index::{Segment, SegmentComponent, SegmentReader}; use crate::indexer::doc_id_mapping::{MappingType, SegmentDocIdMapping}; use crate::indexer::SegmentSerializer; use crate::postings::{InvertedIndexSerializer, Postings, SegmentPostings}; @@ -21,8 +21,7 @@ use crate::schema::{value_type_to_column_type, Field, FieldType, Schema}; use crate::store::StoreWriter; use crate::termdict::{TermMerger, TermOrdinal}; use crate::{ - DocAddress, DocId, IndexSettings, IndexSortByField, InvertedIndexReader, Order, - SegmentComponent, SegmentOrdinal, + DocAddress, DocId, IndexSettings, IndexSortByField, InvertedIndexReader, Order, SegmentOrdinal, }; /// Segment's max doc must be `< MAX_DOC_LIMIT`. @@ -794,7 +793,7 @@ mod tests { BytesFastFieldTestCollector, FastFieldTestCollector, TEST_COLLECTOR_WITH_SCORE, }; use crate::collector::{Count, FacetCollector}; - use crate::index::Index; + use crate::index::{Index, SegmentId}; use crate::query::{AllQuery, BooleanQuery, EnableScoring, Scorer, TermQuery}; use crate::schema::document::Value; use crate::schema::{ @@ -804,7 +803,7 @@ mod tests { use crate::time::OffsetDateTime; use crate::{ assert_nearly_equals, schema, DateTime, DocAddress, DocId, DocSet, IndexSettings, - IndexSortByField, IndexWriter, Order, Searcher, SegmentId, + IndexSortByField, IndexWriter, Order, Searcher, }; #[test] diff --git a/src/indexer/merger_sorted_index_test.rs b/src/indexer/merger_sorted_index_test.rs index 3b256a634..d698b357f 100644 --- a/src/indexer/merger_sorted_index_test.rs +++ b/src/indexer/merger_sorted_index_test.rs @@ -3,6 +3,7 @@ mod tests { use crate::collector::TopDocs; use crate::fastfield::AliveBitSet; use crate::index::Index; + use crate::postings::Postings; use crate::query::QueryParser; use crate::schema::document::Value; use crate::schema::{ @@ -10,8 +11,8 @@ mod tests { TextFieldIndexing, TextOptions, }; use crate::{ - DocAddress, DocSet, IndexSettings, IndexSortByField, IndexWriter, Order, Postings, - TantivyDocument, Term, + DocAddress, DocSet, IndexSettings, IndexSortByField, IndexWriter, Order, TantivyDocument, + Term, }; fn create_test_index_posting_list_issue(index_settings: Option) -> Index { diff --git a/src/indexer/segment_writer.rs b/src/indexer/segment_writer.rs index ca0b0993d..2ee2843c0 100644 --- a/src/indexer/segment_writer.rs +++ b/src/indexer/segment_writer.rs @@ -7,7 +7,7 @@ use super::doc_id_mapping::{get_doc_id_mapping_from_field, DocIdMapping}; use super::operation::AddOperation; use crate::fastfield::FastFieldsWriter; use crate::fieldnorm::{FieldNormReaders, FieldNormsWriter}; -use crate::index::Segment; +use crate::index::{Segment, SegmentComponent}; use crate::indexer::segment_serializer::SegmentSerializer; use crate::json_utils::{index_json_value, IndexingPositionsPerPath}; use crate::postings::{ @@ -18,7 +18,7 @@ use crate::schema::document::{Document, Value}; use crate::schema::{FieldEntry, FieldType, Schema, Term, DATE_TIME_PRECISION_INDEXED}; use crate::store::{StoreReader, StoreWriter}; use crate::tokenizer::{FacetTokenizer, PreTokenizedStream, TextAnalyzer, Tokenizer}; -use crate::{DocId, Opstamp, SegmentComponent, TantivyError}; +use crate::{DocId, Opstamp, TantivyError}; /// Computes the initial size of the hash table. /// @@ -498,7 +498,7 @@ mod tests { use crate::collector::{Count, TopDocs}; use crate::directory::RamDirectory; use crate::fastfield::FastValue; - use crate::postings::TermInfo; + use crate::postings::{Postings, TermInfo}; use crate::query::{PhraseQuery, QueryParser}; use crate::schema::document::Value; use crate::schema::{ @@ -510,8 +510,8 @@ mod tests { use crate::time::OffsetDateTime; use crate::tokenizer::{PreTokenizedString, Token}; use crate::{ - DateTime, Directory, DocAddress, DocSet, Index, IndexWriter, Postings, TantivyDocument, - Term, TERMINATED, + DateTime, Directory, DocAddress, DocSet, Index, IndexWriter, TantivyDocument, Term, + TERMINATED, }; #[test] diff --git a/src/lib.rs b/src/lib.rs index 077725f57..2978f4178 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -216,11 +216,6 @@ use once_cell::sync::Lazy; use serde::{Deserialize, Serialize}; pub use self::docset::{DocSet, COLLECT_BLOCK_BUFFER_LEN, TERMINATED}; -#[deprecated( - since = "0.22.0", - note = "Will be removed in tantivy 0.23. Use export from snippet module instead" -)] -pub use self::snippet::{Snippet, SnippetGenerator}; #[doc(hidden)] pub use crate::core::json_utils; pub use crate::core::{Executor, Searcher, SearcherGeneration}; @@ -228,16 +223,10 @@ pub use crate::directory::Directory; #[allow(deprecated)] // Remove with index sorting pub use crate::index::{ Index, IndexBuilder, IndexMeta, IndexSettings, IndexSortByField, InvertedIndexReader, Order, - Segment, SegmentComponent, SegmentId, SegmentMeta, SegmentReader, + Segment, SegmentMeta, SegmentReader, }; -#[deprecated( - since = "0.22.0", - note = "Will be removed in tantivy 0.23. Use export from indexer module instead" -)] -pub use crate::indexer::PreparedCommit; pub use crate::indexer::{IndexWriter, SingleSegmentIndexWriter}; -pub use crate::postings::Postings; -pub use crate::schema::{DateOptions, DateTimePrecision, Document, TantivyDocument, Term}; +pub use crate::schema::{Document, TantivyDocument, Term}; /// Index format version. const INDEX_FORMAT_VERSION: u32 = 6; @@ -392,9 +381,10 @@ pub mod tests { use crate::docset::{DocSet, TERMINATED}; use crate::index::SegmentReader; use crate::merge_policy::NoMergePolicy; + use crate::postings::Postings; use crate::query::BooleanQuery; use crate::schema::*; - use crate::{DateTime, DocAddress, Index, IndexWriter, Postings, ReloadPolicy}; + use crate::{DateTime, DocAddress, Index, IndexWriter, ReloadPolicy}; pub fn fixed_size_test() { let mut buffer = Vec::new(); @@ -1109,9 +1099,9 @@ pub mod tests { #[test] fn test_update_via_delete_insert() -> crate::Result<()> { use crate::collector::Count; + use crate::index::SegmentId; use crate::indexer::NoMergePolicy; use crate::query::AllQuery; - use crate::SegmentId; const DOC_COUNT: u64 = 2u64; diff --git a/src/postings/serializer.rs b/src/postings/serializer.rs index c0757f8fd..91b8ec4ca 100644 --- a/src/postings/serializer.rs +++ b/src/postings/serializer.rs @@ -56,7 +56,7 @@ pub struct InvertedIndexSerializer { impl InvertedIndexSerializer { /// Open a new `InvertedIndexSerializer` for the given segment pub fn open(segment: &mut Segment) -> crate::Result { - use crate::SegmentComponent::{Positions, Postings, Terms}; + use crate::index::SegmentComponent::{Positions, Postings, Terms}; let inv_index_serializer = InvertedIndexSerializer { terms_write: CompositeWrite::wrap(segment.open_write(Terms)?), postings_write: CompositeWrite::wrap(segment.open_write(Postings)?), diff --git a/src/query/empty_query.rs b/src/query/empty_query.rs index 76eadddb4..86ff84c08 100644 --- a/src/query/empty_query.rs +++ b/src/query/empty_query.rs @@ -1,8 +1,9 @@ use super::Scorer; use crate::docset::TERMINATED; +use crate::index::SegmentReader; use crate::query::explanation::does_not_match; use crate::query::{EnableScoring, Explanation, Query, Weight}; -use crate::{DocId, DocSet, Score, Searcher, SegmentReader}; +use crate::{DocId, DocSet, Score, Searcher}; /// `EmptyQuery` is a dummy `Query` in which no document matches. /// diff --git a/src/query/term_query/term_scorer.rs b/src/query/term_query/term_scorer.rs index 2bbd0c630..594272019 100644 --- a/src/query/term_query/term_scorer.rs +++ b/src/query/term_query/term_scorer.rs @@ -127,6 +127,7 @@ impl Scorer for TermScorer { mod tests { use proptest::prelude::*; + use crate::index::SegmentId; use crate::indexer::index_writer::MEMORY_BUDGET_NUM_BYTES_MIN; use crate::merge_policy::NoMergePolicy; use crate::postings::compression::COMPRESSION_BLOCK_SIZE; @@ -134,8 +135,7 @@ mod tests { use crate::query::{Bm25Weight, EnableScoring, Scorer, TermQuery}; use crate::schema::{IndexRecordOption, Schema, TEXT}; use crate::{ - assert_nearly_equals, DocId, DocSet, Index, IndexWriter, Score, Searcher, SegmentId, Term, - TERMINATED, + assert_nearly_equals, DocId, DocSet, Index, IndexWriter, Score, Searcher, Term, TERMINATED, }; #[test] diff --git a/src/reader/warming.rs b/src/reader/warming.rs index 936fc34da..63a274e91 100644 --- a/src/reader/warming.rs +++ b/src/reader/warming.rs @@ -179,9 +179,10 @@ mod tests { use super::Warmer; use crate::core::searcher::SearcherGeneration; use crate::directory::RamDirectory; + use crate::index::SegmentId; use crate::indexer::index_writer::MEMORY_BUDGET_NUM_BYTES_MIN; use crate::schema::{Schema, INDEXED}; - use crate::{Index, IndexSettings, ReloadPolicy, Searcher, SegmentId}; + use crate::{Index, IndexSettings, ReloadPolicy, Searcher}; #[derive(Default)] struct TestWarmer { diff --git a/src/schema/flags.rs b/src/schema/flags.rs index 449e12a4c..4f8caa612 100644 --- a/src/schema/flags.rs +++ b/src/schema/flags.rs @@ -1,7 +1,6 @@ use std::ops::BitOr; -use crate::schema::{NumericOptions, TextOptions}; -use crate::DateOptions; +use crate::schema::{DateOptions, NumericOptions, TextOptions}; #[derive(Clone)] pub struct StoredFlag; diff --git a/src/space_usage/mod.rs b/src/space_usage/mod.rs index 466d67aae..238ada60f 100644 --- a/src/space_usage/mod.rs +++ b/src/space_usage/mod.rs @@ -12,8 +12,8 @@ use std::collections::HashMap; use common::ByteCount; use serde::{Deserialize, Serialize}; +use crate::index::SegmentComponent; use crate::schema::Field; -use crate::SegmentComponent; /// Enum containing any of the possible space usage results for segment components. pub enum ComponentSpaceUsage { @@ -115,7 +115,7 @@ impl SegmentSpaceUsage { /// Use the components directly if this is somehow in performance critical code. pub fn component(&self, component: SegmentComponent) -> ComponentSpaceUsage { use self::ComponentSpaceUsage::*; - use crate::SegmentComponent::*; + use crate::index::SegmentComponent::*; match component { Postings => PerField(self.postings().clone()), Positions => PerField(self.positions().clone()),