Class 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()
    • 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 corrupt
        java.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.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 corrupt
        java.io.IOException - if there is a low-level IO error
      • mergeTermVectors

        private int mergeTermVectors()
                              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
      • 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