Package org.apache.lucene.index
Class SegmentMerger
- java.lang.Object
-
- org.apache.lucene.index.SegmentMerger
-
final class SegmentMerger extends java.lang.Object
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:
merge()
-
-
Field Summary
Fields Modifier and Type Field Description private Codec
codec
private IOContext
context
private Directory
directory
private FieldInfos.Builder
fieldInfosBuilder
(package private) MergeState
mergeState
-
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) MergeState
merge()
Merges the readers into the directory passed to the constructorprivate void
mergeDocValues(SegmentWriteState segmentWriteState)
void
mergeFieldInfos()
private int
mergeFields()
Merge stored fields from each of the segments into the new one.private void
mergeNorms(SegmentWriteState segmentWriteState)
private void
mergePoints(SegmentWriteState segmentWriteState)
private void
mergeTerms(SegmentWriteState segmentWriteState, NormsProducer norms)
private int
mergeVectors()
Merge the TermVectors from each of the segments into the new one.(package private) boolean
shouldMerge()
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.IOException
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 corruptjava.io.IOException
- if there is a low-level IO error
-
mergeVectors
private int mergeVectors() throws java.io.IOException
Merge 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
-
-