Package org.apache.lucene.index
Class MergeScheduler
- java.lang.Object
-
- org.apache.lucene.index.MergeScheduler
-
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
ConcurrentMergeScheduler,NoMergeScheduler,SerialMergeScheduler
public abstract class MergeScheduler extends Object implements Closeable
Expert:
IndexWriteruses an instance implementing this interface to execute the merges selected by aMergePolicy. The default MergeScheduler isConcurrentMergeScheduler.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description protected InfoStreaminfoStreamFor messages about merge scheduling
-
Constructor Summary
Constructors Modifier Constructor Description protectedMergeScheduler()Sole constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidclose()Close this MergeScheduler.abstract voidmerge(IndexWriter writer, MergeTrigger trigger, boolean newMergesFound)Run the merges provided byIndexWriter.getNextMerge().protected voidmessage(String message)Outputs the given message - this method assumesverbose()was called and returned true.protected booleanverbose()Returns true if infoStream messages are enabled.DirectorywrapForMerge(MergePolicy.OneMerge merge, Directory in)Wraps the incomingDirectoryso that we can merge-throttle it usingRateLimitedIndexOutput.
-
-
-
Field Detail
-
infoStream
protected InfoStream infoStream
For messages about merge scheduling
-
-
Method Detail
-
merge
public abstract void merge(IndexWriter writer, MergeTrigger trigger, boolean newMergesFound) throws IOException
Run the merges provided byIndexWriter.getNextMerge().- Parameters:
writer- theIndexWriterto obtain the merges from.trigger- theMergeTriggerthat caused this merge to happennewMergesFound-trueiff any new merges were found by the caller otherwisefalse- Throws:
IOException
-
wrapForMerge
public Directory wrapForMerge(MergePolicy.OneMerge merge, Directory in)
Wraps the incomingDirectoryso that we can merge-throttle it usingRateLimitedIndexOutput.
-
close
public abstract void close() throws IOExceptionClose this MergeScheduler.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
verbose
protected boolean verbose()
Returns true if infoStream messages are enabled. This method is usually used in conjunction withmessage(String):if (verbose()) { message("your message"); }
-
-