Package org.apache.lucene.index
Class NoMergePolicy
- java.lang.Object
-
- org.apache.lucene.index.MergePolicy
-
- org.apache.lucene.index.NoMergePolicy
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public final class NoMergePolicy extends MergePolicy
AMergePolicywhich never returns merges to execute (hence it's name). It is also a singleton and can be accessed throughNO_COMPOUND_FILESif you want to indicate the index does not use compound files, or throughCOMPOUND_FILESotherwise. Use it if you want to prevent anIndexWriterfrom ever executing merges, without going through the hassle of tweaking a merge policy's settings to achieve that, such as changing its merge factor.
-
-
Nested Class Summary
-
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 MergePolicyCOMPOUND_FILESA singletonNoMergePolicywhich indicates the index uses compound files.static MergePolicyNO_COMPOUND_FILESA singletonNoMergePolicywhich indicates the index does not use compound files.-
Fields inherited from class org.apache.lucene.index.MergePolicy
writer
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Release all resources for the policy.MergePolicy.MergeSpecificationfindForcedDeletesMerges(SegmentInfos segmentInfos)Determine what set of merge operations is necessary in order to expunge all deletes from the index.MergePolicy.MergeSpecificationfindForcedMerges(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentInfo,Boolean> segmentsToMerge)Determine what set of merge operations is necessary in order to merge to <= the specified segment count.MergePolicy.MergeSpecificationfindMerges(SegmentInfos segmentInfos)Determine what set of merge operations are now necessary on the index.voidsetIndexWriter(IndexWriter writer)Sets theIndexWriterto use by this merge policy.StringtoString()booleanuseCompoundFile(SegmentInfos segments, SegmentInfo newSegment)Returns true if a new segment (regardless of its origin) should use the compound file format.
-
-
-
Field Detail
-
NO_COMPOUND_FILES
public static final MergePolicy NO_COMPOUND_FILES
A singletonNoMergePolicywhich indicates the index does not use compound files.
-
COMPOUND_FILES
public static final MergePolicy COMPOUND_FILES
A singletonNoMergePolicywhich indicates the index uses compound files.
-
-
Method Detail
-
close
public void close()
Description copied from class:MergePolicyRelease all resources for the policy.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classMergePolicy
-
findMerges
public MergePolicy.MergeSpecification findMerges(SegmentInfos segmentInfos) throws CorruptIndexException, IOException
Description copied from class:MergePolicyDetermine what set of merge operations are now necessary on the index.IndexWritercalls this whenever there is a change to the segments. This call is always synchronized on theIndexWriterinstance so only one thread at a time will call this method.- Specified by:
findMergesin classMergePolicy- Parameters:
segmentInfos- the total set of segments in the index- Throws:
CorruptIndexExceptionIOException
-
findForcedMerges
public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentInfo,Boolean> segmentsToMerge) throws CorruptIndexException, IOException
Description copied from class:MergePolicyDetermine what set of merge operations is necessary in order to merge to <= the specified segment count.IndexWritercalls this when itsIndexWriter.forceMerge(int)method is called. This call is always synchronized on theIndexWriterinstance so only one thread at a time will call this method.- Specified by:
findForcedMergesin classMergePolicy- Parameters:
segmentInfos- the total set of segments in the indexmaxSegmentCount- 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:
CorruptIndexExceptionIOException
-
findForcedDeletesMerges
public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos) throws CorruptIndexException, IOException
Description copied from class:MergePolicyDetermine what set of merge operations is necessary in order to expunge all deletes from the index.- Specified by:
findForcedDeletesMergesin classMergePolicy- Parameters:
segmentInfos- the total set of segments in the index- Throws:
CorruptIndexExceptionIOException
-
useCompoundFile
public boolean useCompoundFile(SegmentInfos segments, SegmentInfo newSegment)
Description copied from class:MergePolicyReturns true if a new segment (regardless of its origin) should use the compound file format.- Specified by:
useCompoundFilein classMergePolicy
-
setIndexWriter
public void setIndexWriter(IndexWriter writer)
Description copied from class:MergePolicySets theIndexWriterto use by this merge policy. This method is allowed to be called only once, and is usually set by IndexWriter. If it is called more than once,SetOnce.AlreadySetExceptionis thrown.- Overrides:
setIndexWriterin classMergePolicy- See Also:
SetOnce
-
-