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()
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interfaceSegmentMerger.Mergerprivate static interfaceSegmentMerger.VoidMerger
-
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, SegmentReadState segmentReadState)voidmergeFieldInfos()private voidmergeFieldInfos(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState)private intmergeFields()Merge stored fields from each of the segments into the new one.private voidmergeNorms(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState)private voidmergePoints(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState)private voidmergeTerms(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState)private intmergeTermVectors()Merge the TermVectors from each of the segments into the new one.private voidmergeVectorValues(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState)private intmergeWithLogging(SegmentMerger.Merger merger, java.lang.String formatName)private voidmergeWithLogging(SegmentMerger.VoidMerger merger, SegmentWriteState segmentWriteState, SegmentReadState segmentReadState, java.lang.String formatName, int numMerged)(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
-
mergeFieldInfos
private void mergeFieldInfos(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeDocValues
private void mergeDocValues(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergePoints
private void mergePoints(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeNorms
private void mergeNorms(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeTerms
private void mergeTerms(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) 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
-
mergeTermVectors
private int mergeTermVectors() 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
-
mergeVectorValues
private void mergeVectorValues(SegmentWriteState segmentWriteState, SegmentReadState segmentReadState) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeWithLogging
private int mergeWithLogging(SegmentMerger.Merger merger, java.lang.String formatName) throws java.io.IOException
- Throws:
java.io.IOException
-
mergeWithLogging
private void mergeWithLogging(SegmentMerger.VoidMerger merger, SegmentWriteState segmentWriteState, SegmentReadState segmentReadState, java.lang.String formatName, int numMerged) throws java.io.IOException
- Throws:
java.io.IOException
-
-