org.apache.lucene.index
Class BalancedSegmentMergePolicy

java.lang.Object
  extended by org.apache.lucene.index.MergePolicy
      extended by org.apache.lucene.index.LogMergePolicy
          extended by org.apache.lucene.index.LogByteSizeMergePolicy
              extended by org.apache.lucene.index.BalancedSegmentMergePolicy
All Implemented Interfaces:
Closeable, Cloneable

public class BalancedSegmentMergePolicy
extends LogByteSizeMergePolicy

Merge policy that tries to balance not doing large segment merges with not accumulating too many segments in the index, to provide for better performance in near real-time setting.

This is based on code from zoie, described in more detail at http://code.google.com/p/zoie/wiki/ZoieMergePolicy.


Nested Class Summary
static class BalancedSegmentMergePolicy.MergePolicyParams
          Specifies configuration parameters for BalancedSegmentMergePolicy.
 
Nested classes/interfaces inherited from class org.apache.lucene.index.MergePolicy
MergePolicy.MergeAbortedException, MergePolicy.MergeException, MergePolicy.MergeSpecification, MergePolicy.OneMerge
 
Field Summary
static int DEFAULT_NUM_LARGE_SEGMENTS
           
 
Fields inherited from class org.apache.lucene.index.LogByteSizeMergePolicy
DEFAULT_MAX_MERGE_MB, DEFAULT_MAX_MERGE_MB_FOR_FORCED_MERGE, DEFAULT_MIN_MERGE_MB
 
Fields inherited from class org.apache.lucene.index.LogMergePolicy
calibrateSizeByDeletes, DEFAULT_MAX_MERGE_DOCS, DEFAULT_MERGE_FACTOR, DEFAULT_NO_CFS_RATIO, LEVEL_LOG_SPAN, maxMergeDocs, maxMergeSize, maxMergeSizeForForcedMerge, mergeFactor, minMergeSize, noCFSRatio, useCompoundFile
 
Fields inherited from class org.apache.lucene.index.MergePolicy
writer
 
Constructor Summary
BalancedSegmentMergePolicy()
           
 
Method Summary
 MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos infos)
           
 MergePolicy.MergeSpecification findForcedMerges(SegmentInfos infos, int maxNumSegments, Map<SegmentInfoPerCommit,Boolean> segmentsToMerge)
           
 MergePolicy.MergeSpecification findMerges(SegmentInfos infos)
           
 int getMaxSmallSegments()
           
 int getNumLargeSegments()
           
 boolean getPartialExpunge()
           
 void setMaxSmallSegments(int maxSmallSegments)
           
 void setMergeFactor(int mergeFactor)
           
 void setMergePolicyParams(BalancedSegmentMergePolicy.MergePolicyParams params)
           
 void setNumLargeSegments(int numLargeSegments)
           
 void setPartialExpunge(boolean doPartialExpunge)
           
protected  long size(SegmentInfoPerCommit info)
           
 
Methods inherited from class org.apache.lucene.index.LogByteSizeMergePolicy
getMaxMergeMB, getMaxMergeMBForForcedMerge, getMinMergeMB, setMaxMergeMB, setMaxMergeMBForForcedMerge, setMinMergeMB
 
Methods inherited from class org.apache.lucene.index.LogMergePolicy
close, getCalibrateSizeByDeletes, getMaxMergeDocs, getMergeFactor, getNoCFSRatio, getUseCompoundFile, isMerged, isMerged, message, setCalibrateSizeByDeletes, setMaxMergeDocs, setNoCFSRatio, setUseCompoundFile, sizeBytes, sizeDocs, toString, useCompoundFile, verbose
 
Methods inherited from class org.apache.lucene.index.MergePolicy
clone, setIndexWriter
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_NUM_LARGE_SEGMENTS

public static final int DEFAULT_NUM_LARGE_SEGMENTS
See Also:
Constant Field Values
Constructor Detail

BalancedSegmentMergePolicy

public BalancedSegmentMergePolicy()
Method Detail

setMergePolicyParams

public void setMergePolicyParams(BalancedSegmentMergePolicy.MergePolicyParams params)

size

protected long size(SegmentInfoPerCommit info)
             throws IOException
Overrides:
size in class LogByteSizeMergePolicy
Throws:
IOException

setPartialExpunge

public void setPartialExpunge(boolean doPartialExpunge)

getPartialExpunge

public boolean getPartialExpunge()

setNumLargeSegments

public void setNumLargeSegments(int numLargeSegments)

getNumLargeSegments

public int getNumLargeSegments()

setMaxSmallSegments

public void setMaxSmallSegments(int maxSmallSegments)

getMaxSmallSegments

public int getMaxSmallSegments()

setMergeFactor

public void setMergeFactor(int mergeFactor)
Overrides:
setMergeFactor in class LogMergePolicy

findForcedMerges

public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos infos,
                                                       int maxNumSegments,
                                                       Map<SegmentInfoPerCommit,Boolean> segmentsToMerge)
                                                throws IOException
Overrides:
findForcedMerges in class LogMergePolicy
Throws:
IOException

findForcedDeletesMerges

public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos infos)
                                                       throws CorruptIndexException,
                                                              IOException
Overrides:
findForcedDeletesMerges in class LogMergePolicy
Throws:
CorruptIndexException
IOException

findMerges

public MergePolicy.MergeSpecification findMerges(SegmentInfos infos)
                                          throws IOException
Overrides:
findMerges in class LogMergePolicy
Throws:
IOException


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.