Package org.apache.lucene.index
Class BalancedSegmentMergePolicy
- java.lang.Object
-
- org.apache.lucene.index.MergePolicy
-
- org.apache.lucene.index.LogMergePolicy
-
- org.apache.lucene.index.LogByteSizeMergePolicy
-
- org.apache.lucene.index.BalancedSegmentMergePolicy
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
@Deprecated public class BalancedSegmentMergePolicy extends LogByteSizeMergePolicy
Deprecated.This class is removed in 4.0; useTieredMergePolicy
instead.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.
WARNING: there is a known bug in this merge policy that causes it to run forever, merging the same single segment over and over. If you use
SerialMergeScheduler
this can cause an index thread to hang forever merging. See LUCENE-4269 for details.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BalancedSegmentMergePolicy.MergePolicyParams
Deprecated.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
Fields Modifier and Type Field Description static int
DEFAULT_NUM_LARGE_SEGMENTS
Deprecated.-
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
Constructors Constructor Description BalancedSegmentMergePolicy()
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description MergePolicy.MergeSpecification
findForcedDeletesMerges(SegmentInfos infos)
Deprecated.Finds merges necessary to force-merge all deletes from the index.MergePolicy.MergeSpecification
findForcedMerges(SegmentInfos infos, int maxNumSegments, Map<SegmentInfo,Boolean> segmentsToMerge)
Deprecated.Returns the merges necessary to merge the index down to a specified number of segments.MergePolicy.MergeSpecification
findMerges(SegmentInfos infos)
Deprecated.Checks if any merges are now necessary and returns aMergePolicy.MergeSpecification
if so.int
getMaxSmallSegments()
Deprecated.int
getNumLargeSegments()
Deprecated.boolean
getPartialExpunge()
Deprecated.void
setMaxSmallSegments(int maxSmallSegments)
Deprecated.void
setMergeFactor(int mergeFactor)
Deprecated.Determines how often segment indices are merged by addDocument().void
setMergePolicyParams(BalancedSegmentMergePolicy.MergePolicyParams params)
Deprecated.void
setNumLargeSegments(int numLargeSegments)
Deprecated.void
setPartialExpunge(boolean doPartialExpunge)
Deprecated.protected long
size(SegmentInfo info)
Deprecated.-
Methods inherited from class org.apache.lucene.index.LogByteSizeMergePolicy
getMaxMergeMB, getMaxMergeMBForForcedMerge, getMaxMergeMBForOptimize, getMinMergeMB, setMaxMergeMB, setMaxMergeMBForForcedMerge, setMaxMergeMBForOptimize, 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
setIndexWriter
-
-
-
-
Field Detail
-
DEFAULT_NUM_LARGE_SEGMENTS
public static final int DEFAULT_NUM_LARGE_SEGMENTS
Deprecated.- See Also:
- Constant Field Values
-
-
Method Detail
-
setMergePolicyParams
public void setMergePolicyParams(BalancedSegmentMergePolicy.MergePolicyParams params)
Deprecated.
-
size
protected long size(SegmentInfo info) throws IOException
Deprecated.- Overrides:
size
in classLogByteSizeMergePolicy
- Throws:
IOException
-
setPartialExpunge
public void setPartialExpunge(boolean doPartialExpunge)
Deprecated.
-
getPartialExpunge
public boolean getPartialExpunge()
Deprecated.
-
setNumLargeSegments
public void setNumLargeSegments(int numLargeSegments)
Deprecated.
-
getNumLargeSegments
public int getNumLargeSegments()
Deprecated.
-
setMaxSmallSegments
public void setMaxSmallSegments(int maxSmallSegments)
Deprecated.
-
getMaxSmallSegments
public int getMaxSmallSegments()
Deprecated.
-
setMergeFactor
public void setMergeFactor(int mergeFactor)
Deprecated.Description copied from class:LogMergePolicy
Determines how often segment indices are merged by addDocument(). With smaller values, less RAM is used while indexing, and searches are faster, but indexing speed is slower. With larger values, more RAM is used during indexing, and while searches is slower, indexing is faster. Thus larger values (> 10) are best for batch index creation, and smaller values (< 10) for indices that are interactively maintained.- Overrides:
setMergeFactor
in classLogMergePolicy
-
findForcedMerges
public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos infos, int maxNumSegments, Map<SegmentInfo,Boolean> segmentsToMerge) throws IOException
Deprecated.Description copied from class:LogMergePolicy
Returns the merges necessary to merge the index down to a specified number of segments. This respects theLogMergePolicy.maxMergeSizeForForcedMerge
setting. By default, and assumingmaxNumSegments=1
, only one segment will be left in the index, where that segment has no deletions pending nor separate norms, and it is in compound file format if the current useCompoundFile setting is true. This method returns multiple merges (mergeFactor at a time) so theMergeScheduler
in use may make use of concurrency.- Overrides:
findForcedMerges
in classLogMergePolicy
- Parameters:
infos
- the total set of segments in the indexmaxNumSegments
- requested maximum number of segments in the index (currently this is always 1)segmentsToMerge
- contains the specific SegmentInfo instances that must be merged away. This may be a subset of all SegmentInfos. If the value is True for a given SegmentInfo, that means this segment was an original segment present in the to-be-merged index; else, it was a segment produced by a cascaded merge.- Throws:
IOException
-
findForcedDeletesMerges
public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos infos) throws CorruptIndexException, IOException
Deprecated.Description copied from class:LogMergePolicy
Finds merges necessary to force-merge all deletes from the index. We simply merge adjacent segments that have deletes, up to mergeFactor at a time.- Overrides:
findForcedDeletesMerges
in classLogMergePolicy
- Parameters:
infos
- the total set of segments in the index- Throws:
CorruptIndexException
IOException
-
findMerges
public MergePolicy.MergeSpecification findMerges(SegmentInfos infos) throws IOException
Deprecated.Description copied from class:LogMergePolicy
Checks if any merges are now necessary and returns aMergePolicy.MergeSpecification
if so. A merge is necessary when there are more thanLogMergePolicy.setMergeFactor(int)
segments at a given level. When multiple levels have too many segments, this method will return multiple merges, allowing theMergeScheduler
to use concurrency.- Overrides:
findMerges
in classLogMergePolicy
- Parameters:
infos
- the total set of segments in the index- Throws:
IOException
-
-