## Uses of Class
org.apache.lucene.index.SegmentInfos

- Packages that use SegmentInfos
  Package | Description
  --- | ---
  org.apache.lucene.index | Code to maintain and access indices.

- - ### Uses of SegmentInfos in org.apache.lucene.index

    Methods in org.apache.lucene.index that return SegmentInfos
    Modifier and Type | Method | Description
    --- | --- | ---
    `SegmentInfos` | SegmentInfos.`clone()` | Returns a copy of this instance, also copying each SegmentInfo.
    `SegmentInfos` | StandardDirectoryReader.`getSegmentInfos()` | Return the `SegmentInfos` for this reader.
    `static SegmentInfos` | SegmentInfos.`readCommit​(Directory directory, String segmentFileName)` | Read a particular segmentFileName.
    `static SegmentInfos` | SegmentInfos.`readCommit​(Directory directory, ChecksumIndexInput input, long generation)` | Read the commit from the provided `ChecksumIndexInput`.
    `static SegmentInfos` | SegmentInfos.`readLatestCommit​(Directory directory)` | Find the latest commit (`segments_N file`) and load all `SegmentCommitInfo`s.
    `static SegmentInfos` | SegmentInfos.`readLatestCommit​(Directory directory, int minSupportedMajorVersion)` | Find the latest commit (`segments_N file`) and load all `SegmentCommitInfo`s, as long as the commit's `getIndexCreatedVersionMajor()` is strictly greater than the provided minimum supported major version.

    Methods in org.apache.lucene.index with parameters of type SegmentInfos
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | IndexWriter.`decRefDeleter​(SegmentInfos segmentInfos)` | Record that the files referenced by this `SegmentInfos` are no longer in use.
    `MergePolicy.MergeSpecification` | FilterMergePolicy.`findForcedDeletesMerges​(SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | LogMergePolicy.`findForcedDeletesMerges​(SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` | Finds merges necessary to force-merge all deletes from the index.
    `abstract MergePolicy.MergeSpecification` | MergePolicy.`findForcedDeletesMerges​(SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` | Determine what set of merge operations is necessary in order to expunge all deletes from the index.
    `MergePolicy.MergeSpecification` | NoMergePolicy.`findForcedDeletesMerges​(SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | OneMergeWrappingMergePolicy.`findForcedDeletesMerges​(SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | TieredMergePolicy.`findForcedDeletesMerges​(SegmentInfos infos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | FilterMergePolicy.`findForcedMerges​(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | LogMergePolicy.`findForcedMerges​(SegmentInfos infos, int maxNumSegments, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` | Returns the merges necessary to merge the index down to a specified number of segments.
    `abstract MergePolicy.MergeSpecification` | MergePolicy.`findForcedMerges​(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` | Determine what set of merge operations is necessary in order to merge to `<=` the specified segment count.
    `MergePolicy.MergeSpecification` | NoMergePolicy.`findForcedMerges​(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | OneMergeWrappingMergePolicy.`findForcedMerges​(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | TieredMergePolicy.`findForcedMerges​(SegmentInfos infos, int maxSegmentCount, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | UpgradeIndexMergePolicy.`findForcedMerges​(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | FilterMergePolicy.`findFullFlushMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | MergePolicy.`findFullFlushMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` | Identifies merges that we want to execute (synchronously) on commit.
    `MergePolicy.MergeSpecification` | NoMergePolicy.`findFullFlushMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | OneMergeWrappingMergePolicy.`findFullFlushMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | FilterMergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | LogMergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos infos, MergePolicy.MergeContext mergeContext)` | Checks if any merges are now necessary and returns a `MergePolicy.MergeSpecification` if so.
    `abstract MergePolicy.MergeSpecification` | MergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` | Determine what set of merge operations are now necessary on the index.
    `MergePolicy.MergeSpecification` | NoMergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | OneMergeWrappingMergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | TieredMergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos infos, MergePolicy.MergeContext mergeContext)` |
    `MergePolicy.MergeSpecification` | UpgradeIndexMergePolicy.`findMerges​(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` |
    `void` | IndexWriter.`incRefDeleter​(SegmentInfos segmentInfos)` | Record that the files referenced by this `SegmentInfos` are still in use.
    `protected boolean` | LogMergePolicy.`isMerged​(SegmentInfos infos, int maxNumSegments, Map<SegmentCommitInfo,​Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` | Returns true if the number of segments eligible for merging is less than or equal to the specified `maxNumSegments`.
    `protected boolean` | MergePolicy.`isMerged​(SegmentInfos infos, SegmentCommitInfo info, MergePolicy.MergeContext mergeContext)` | Returns true if this single info is already fully merged (has no pending deletes, is in the same dir as the writer, and matches the current compound file setting
    `static DirectoryReader` | StandardDirectoryReader.`open​(Directory directory, SegmentInfos infos, List<? extends LeafReader> oldReaders, Comparator<LeafReader> leafSorter)` | This constructor is only used for `StandardDirectoryReader.doOpenIfChanged(SegmentInfos)`, as well as NRT replication.
    `void` | SegmentInfos.`updateGeneration​(SegmentInfos other)` | Carry over generation numbers from another SegmentInfos
    `boolean` | FilterMergePolicy.`useCompoundFile​(SegmentInfos infos, SegmentCommitInfo mergedInfo, MergePolicy.MergeContext mergeContext)` |
    `boolean` | MergePolicy.`useCompoundFile​(SegmentInfos infos, SegmentCommitInfo mergedInfo, MergePolicy.MergeContext mergeContext)` | Returns true if a new segment (regardless of its origin) should use the compound file format.
    `boolean` | NoMergePolicy.`useCompoundFile​(SegmentInfos segments, SegmentCommitInfo newSegment, MergePolicy.MergeContext mergeContext)` |