## Package org.apache.lucene.index

Code to maintain and access indices.

See:
Description

Interface Summary
IndexDeletionPolicy: Expert: policy for deletion of stale `index commits`.
IndexReader.ReaderClosedListener: A custom listener that's invoked when the IndexReader is closed.
SegmentReader.CoreClosedListener: Called when the shared core for this SegmentReader is closed.
TermDocs: TermDocs provides an interface for enumerating <document, frequency> pairs for a term.
TermFreqVector: Provides access to stored term vector of a document field.
TermPositions: TermPositions provides an interface for enumerating the <document, frequency, <position>* > tuples for a term.
TermPositionVector: Extends `TermFreqVector` to provide additional information about positions in which each of the terms is found.

Class Summary
AbstractAllTermDocs: Base class for enumerating all but deleted docs.
BalancedSegmentMergePolicy: Deprecated. This class is removed in 4.0; use `TieredMergePolicy` instead.
BalancedSegmentMergePolicy.MergePolicyParams: Specifies configuration parameters for BalancedSegmentMergePolicy.
CheckIndex: Basic tool and API to check the health of an index and write a new segments file that removes reference to problematic segments.
CheckIndex.Status: Returned from `CheckIndex.checkIndex()` detailing the health and status of the index.
CheckIndex.Status.FieldNormStatus: Status from testing field norms.
CheckIndex.Status.SegmentInfoStatus: Holds the status of each segment in the index.
CheckIndex.Status.StoredFieldStatus: Status from testing stored fields.
CheckIndex.Status.TermIndexStatus: Status from testing term index.
CheckIndex.Status.TermVectorStatus: Status from testing stored fields.
CompoundFileExtractor: Command-line tool for extracting sub-files out of a compound file.
CompoundFileWriter: Combines multiple files into a single compound file.
ConcurrentMergeScheduler: A `MergeScheduler` that runs each merge using a separate thread.
FieldInfo: Access to the Fieldable Info file that describes document fields and whether or not they are indexed.
FieldInfos: Collection of `FieldInfo`s (accessible by number or by name).
FieldInvertState: This class tracks the number and position / offset parameters of terms being added to the index.
FieldNormModifier: Deprecated. This class is broken, as it does not correctly take position overlaps into account.
FieldSortedTermVectorMapper: For each Field, store a sorted collection of `TermVectorEntry`s This is not thread-safe.
FilterIndexReader: A `FilterIndexReader` contains another IndexReader, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality.
FilterIndexReader.FilterTermDocs: Base class for filtering `TermDocs` implementations.
FilterIndexReader.FilterTermEnum: Base class for filtering `TermEnum` implementations.
FilterIndexReader.FilterTermPositions: Base class for filtering `TermPositions` implementations.
IndexCommit: Expert: represents a single commit into an index as seen by the `IndexDeletionPolicy` or `IndexReader`.
IndexFileNameFilter: Filename filter that accept filenames and extensions only created by Lucene.
IndexFileNames: This class contains useful constants representing filenames and extensions used by lucene, as well as convenience methods for querying whether a file name matches an extension (`matchesExtension`), as well as generating file names from a segment name, generation and extension ( `fileNameFromGeneration`, `segmentFileName`).
IndexReader: IndexReader is an abstract class, providing an interface for accessing an index.
IndexSorter: Sort an index by document importance factor.
IndexSplitter: Command-line tool that enables listing segments in an index, copying specific segments to another index, and deleting segments from an index.
IndexUpgrader: This is an easy-to-use tool that upgrades all segments of an index from previous Lucene versions to the current segment file format.
IndexWriter: An `IndexWriter` creates and maintains an index.
IndexWriter.IndexReaderWarmer: If `IndexWriter.getReader()` has been called (ie, this writer is in near real-time mode), then after a merge completes, this class can be invoked to warm the reader on the newly merged segment, before the merge commits.
IndexWriter.MaxFieldLength: Deprecated. use `LimitTokenCountAnalyzer` instead.
IndexWriterConfig: Holds all the configuration of `IndexWriter`.
KeepOnlyLastCommitDeletionPolicy: This `IndexDeletionPolicy` implementation that keeps only the most recent commit and immediately removes all prior commits after a new commit is done.
LogByteSizeMergePolicy: This is a `LogMergePolicy` that measures size of a segment as the total byte size of the segment's files.
LogDocMergePolicy: This is a `LogMergePolicy` that measures size of a segment as the number of documents (not taking deletions into account).
LogMergePolicy: This class implements a `MergePolicy` that tries to merge segments into levels of exponentially increasing size, where each level has fewer segments than the value of the merge factor.
MergePolicy: Expert: a MergePolicy determines the sequence of primitive merge operations.
MergePolicy.MergeSpecification: A MergeSpecification instance provides the information necessary to perform multiple merges.
MergePolicy.OneMerge: OneMerge provides the information necessary to perform an individual primitive merge operation, resulting in a single new segment.
MergeScheduler: Expert: `IndexWriter` uses an instance implementing this interface to execute the merges selected by a `MergePolicy`.
MockIndexInput: IndexInput backed by a byte[] for testing.
MockRandomMergePolicy: MergePolicy that makes random decisions for testing.
MultiPassIndexSplitter: This tool splits input index into multiple equal parts.
MultipleTermPositions: Allows you to iterate over the `TermPositions` for multiple `Term`s as a single `TermPositions`.
MultiReader: An IndexReader which reads multiple indexes, appending their content.
NoDeletionPolicy: An `IndexDeletionPolicy` which keeps all index commits around, never deleting them.
NoMergePolicy: A `MergePolicy` which never returns merges to execute (hence it's name).
NoMergeScheduler: A `MergeScheduler` which never executes any merges.
ParallelReader: An IndexReader which reads multiple, parallel indexes.
Payload: A Payload is metadata that can be stored together with each occurrence of a term.
PayloadProcessorProvider: Provides a `PayloadProcessorProvider.ReaderPayloadProcessor` to be used for a `Directory`.
PayloadProcessorProvider.DirPayloadProcessor: Deprecated. Use `PayloadProcessorProvider.ReaderPayloadProcessor` instead.
PayloadProcessorProvider.PayloadProcessor: Processes the given payload.
PayloadProcessorProvider.ReaderPayloadProcessor: Returns a `PayloadProcessorProvider.ReaderPayloadProcessor` for a given `Term` which allows processing the payloads of different terms differently.
PersistentSnapshotDeletionPolicy: A `SnapshotDeletionPolicy` which adds a persistence layer so that snapshots can be maintained across the life of an application.
PKIndexSplitter: Split an index based on a `Filter`.
PositionBasedTermVectorMapper: For each Field, store position by position information.
PositionBasedTermVectorMapper.TVPositionInfo: Container for a term at a position
PruningReader: This class produces a subset of the input index, by removing some postings data according to rules implemented in a `TermPruningPolicy`, and optionally it can also remove stored fields of documents according to rules implemented in a `StorePruningPolicy`.
RandomIndexWriter: Silly class that randomizes the indexing experience.
SegmentInfo: Information about a segment such as it's name, directory, and files related to the segment.
SegmentInfos: A collection of segmentInfo objects with methods for operating on those segments in relation to the file system.
SegmentInfos.FindSegmentsFile: Utility class for executing code that needs to do something with the current segments file.
SegmentReader: IndexReader implementation over a single segment.
SegmentWriteState: Holder class for common parameters used during write.
SerialMergeScheduler: A `MergeScheduler` that simply does each merge sequentially, using the current thread.
SlowMultiReaderWrapper: Acts like Lucene 4.x's SlowMultiReaderWrapper for testing of top-level MultiTermEnum, MultiTermDocs, ...
SnapshotDeletionPolicy: An `IndexDeletionPolicy` that wraps around any other `IndexDeletionPolicy` and adds the ability to hold and later release snapshots of an index.
SortedTermVectorMapper: Store a sorted collection of `TermVectorEntry`s.
Term: A Term represents a word from text.
TermEnum: Abstract class for enumerating terms.
TermVectorAccessor: Transparent access to the vector space model, either via TermFreqVector or by resolving it from the inverted index.
TermVectorEntry: Convenience class for holding TermVector information.
TermVectorEntryFreqSortedComparator: Compares `TermVectorEntry`s first by frequency and then by the term (case-sensitive)
TermVectorMapper: The TermVectorMapper can be used to map Term Vectors into your own structure instead of the parallel array structure used by `IndexReader.getTermFreqVector(int,String)`.
TermVectorOffsetInfo: The TermVectorOffsetInfo class holds information pertaining to a Term in a `TermPositionVector`'s offset information.
ThreadedIndexingAndSearchingTestCase: Utility class that spawns multiple indexing and searching threads.
TieredMergePolicy: Merges segments of approximately equal size, subject to an allowed number of segments per tier.
TieredMergePolicy.MergeScore: Holds score and explanation for a single candidate merge.
UpgradeIndexMergePolicy: This `MergePolicy` is used for upgrading all existing segments of an index when calling `IndexWriter.forceMerge(int)`.

Enum Summary
FieldInfo.IndexOptions: Controls how much information is stored in the postings lists.
IndexWriterConfig.OpenMode: Specifies the open mode for `IndexWriter`: `IndexWriterConfig.OpenMode.CREATE` - creates a new index or overwrites an existing one.

Exception Summary
CorruptIndexException: This exception is thrown when Lucene detects an inconsistency in the index.
FieldReaderException: Exception thrown when stored fields have an unexpected format.
IndexFormatTooNewException: This exception is thrown when Lucene detects an index that is newer than this Lucene version.
IndexFormatTooOldException: This exception is thrown when Lucene detects an index that is too old for this Lucene version
IndexNotFoundException: Signals that no index was found in the Directory.
MergePolicy.MergeAbortedException
MergePolicy.MergeException: Exception thrown if there are any problems while executing a merge.
StaleReaderException: This exception is thrown when an `IndexReader` tries to make changes to the index (via `IndexReader.deleteDocument(int)`, `IndexReader.undeleteAll()` or `IndexReader.setNorm(int, java.lang.String, byte)`) but changes have already been committed to the index since this reader was instantiated.

## Package org.apache.lucene.index Description

Code to maintain and access indices.