Package org.apache.lucene.index
Class SegmentMerger
java.lang.Object
org.apache.lucene.index.SegmentMerger
The 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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static interface
private static interface
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Codec
private final IOContext
private final Directory
private final FieldInfos.Builder
(package private) final MergeState
-
Constructor Summary
ConstructorsConstructorDescriptionSegmentMerger
(List<CodecReader> readers, SegmentInfo segmentInfo, InfoStream infoStream, Directory dir, FieldInfos.FieldNumbers fieldNumbers, IOContext context) -
Method Summary
Modifier and TypeMethodDescription(package private) MergeState
merge()
Merges the readers into the directory passed to the constructorprivate void
mergeDocValues
(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) void
private void
mergeFieldInfos
(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) private int
Merge stored fields from each of the segments into the new one.private void
mergeNorms
(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) private void
mergePoints
(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) private void
mergeTerms
(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) private int
Merge the TermVectors from each of the segments into the new one.private void
mergeVectorValues
(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) private int
mergeWithLogging
(SegmentMerger.Merger merger, String formatName) private void
mergeWithLogging
(SegmentMerger.VoidMerger merger, SegmentWriteState segmentWriteState, SegmentReadState segmentReadState, String formatName, int numMerged) (package private) boolean
True if any merging should happen
-
Field Details
-
directory
-
codec
-
context
-
mergeState
-
fieldInfosBuilder
-
-
Constructor Details
-
SegmentMerger
SegmentMerger(List<CodecReader> readers, SegmentInfo segmentInfo, InfoStream infoStream, Directory dir, FieldInfos.FieldNumbers fieldNumbers, IOContext context) throws IOException - Throws:
IOException
-
-
Method Details
-
shouldMerge
boolean shouldMerge()True if any merging should happen -
merge
Merges the readers into the directory passed to the constructor- Returns:
- The number of documents that were merged
- Throws:
CorruptIndexException
- if the index is corruptIOException
- if there is a low-level IO error
-
mergeFieldInfos
private void mergeFieldInfos(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws IOException - Throws:
IOException
-
mergeDocValues
private void mergeDocValues(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws IOException - Throws:
IOException
-
mergePoints
private void mergePoints(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws IOException - Throws:
IOException
-
mergeNorms
private void mergeNorms(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws IOException - Throws:
IOException
-
mergeTerms
private void mergeTerms(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws IOException - Throws:
IOException
-
mergeFieldInfos
public void mergeFieldInfos() -
mergeFields
Merge 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 corruptIOException
- if there is a low-level IO error
-
mergeTermVectors
Merge the TermVectors from each of the segments into the new one.- Throws:
IOException
- if there is a low-level IO error
-
mergeVectorValues
private void mergeVectorValues(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws IOException - Throws:
IOException
-
mergeWithLogging
- Throws:
IOException
-
mergeWithLogging
private void mergeWithLogging(SegmentMerger.VoidMerger merger, SegmentWriteState segmentWriteState, SegmentReadState segmentReadState, String formatName, int numMerged) throws IOException - Throws:
IOException
-