Package org.apache.lucene.index
Class SegmentMerger
- java.lang.Object
-
- org.apache.lucene.index.SegmentMerger
-
final class SegmentMerger extends java.lang.ObjectThe SegmentMerger class combines two or more Segments, represented by an IndexReader, into a single Segment. Call the merge method to combine the segments.- See Also:
merge()
-
-
Field Summary
Fields Modifier and Type Field Description private Codeccodecprivate IOContextcontextprivate Directorydirectoryprivate FieldInfos.BuilderfieldInfosBuilder(package private) MergeStatemergeState
-
Constructor Summary
Constructors Constructor Description SegmentMerger(java.util.List<CodecReader> readers, SegmentInfo segmentInfo, InfoStream infoStream, Directory dir, FieldInfos.FieldNumbers fieldNumbers, IOContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) MergeStatemerge()Merges the readers into the directory passed to the constructorprivate voidmergeDocValues(SegmentWriteState segmentWriteState)voidmergeFieldInfos()private intmergeFields()Merge stored fields from each of the segments into the new one.private voidmergeNorms(SegmentWriteState segmentWriteState)private voidmergePoints(SegmentWriteState segmentWriteState)private voidmergeTerms(SegmentWriteState segmentWriteState, NormsProducer norms)private intmergeVectors()Merge the TermVectors from each of the segments into the new one.(package private) booleanshouldMerge()True if any merging should happen
-
-
-
Field Detail
-
directory
private final Directory directory
-
codec
private final Codec codec
-
context
private final IOContext context
-
mergeState
final MergeState mergeState
-
fieldInfosBuilder
private final FieldInfos.Builder fieldInfosBuilder
-
-
Constructor Detail
-
SegmentMerger
SegmentMerger(java.util.List<CodecReader> readers, SegmentInfo segmentInfo, InfoStream infoStream, Directory dir, FieldInfos.FieldNumbers fieldNumbers, IOContext context) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
shouldMerge
boolean shouldMerge()
True if any merging should happen
-
merge
MergeState merge() throws java.io.IOException
Merges the readers into the directory passed to the constructor- Returns:
- The number of documents that were merged
- Throws:
CorruptIndexException- if the index is corruptjava.io.IOException- if there is a low-level IO error
-
mergeDocValues
private void mergeDocValues(SegmentWriteState segmentWriteState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergePoints
private void mergePoints(SegmentWriteState segmentWriteState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeNorms
private void mergeNorms(SegmentWriteState segmentWriteState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeFieldInfos
public void mergeFieldInfos()
-
mergeFields
private int mergeFields() throws java.io.IOExceptionMerge stored fields from each of the segments into the new one.- Returns:
- The number of documents in all of the readers
- Throws:
CorruptIndexException- if the index is corruptjava.io.IOException- if there is a low-level IO error
-
mergeVectors
private int mergeVectors() throws java.io.IOExceptionMerge the TermVectors from each of the segments into the new one.- Throws:
java.io.IOException- if there is a low-level IO error
-
mergeTerms
private void mergeTerms(SegmentWriteState segmentWriteState, NormsProducer norms) throws java.io.IOException
- Throws:
java.io.IOException
-
-