public abstract class MergeScheduler
extends java.lang.Object
implements java.io.Closeable
Expert: IndexWriter uses an instance
implementing this interface to execute the merges
selected by a MergePolicy. The default
MergeScheduler is ConcurrentMergeScheduler.
Implementers of sub-classes should make sure that Object.clone()
returns an independent instance able to work with any IndexWriter
instance.
| Modifier and Type | Field and Description |
|---|---|
protected InfoStream |
infoStream
For messages about merge scheduling
|
| Modifier | Constructor and Description |
|---|---|
protected |
MergeScheduler()
Sole constructor.
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
close()
Close this MergeScheduler.
|
abstract void |
merge(IndexWriter writer,
MergeTrigger trigger,
boolean newMergesFound)
Run the merges provided by
IndexWriter.getNextMerge(). |
protected void |
message(java.lang.String message)
Outputs the given message - this method assumes
verbose() was
called and returned true. |
(package private) void |
setInfoStream(InfoStream infoStream)
IndexWriter calls this on init.
|
protected boolean |
verbose()
Returns true if infoStream messages are enabled.
|
protected InfoStream infoStream
protected MergeScheduler()
public abstract void merge(IndexWriter writer, MergeTrigger trigger, boolean newMergesFound) throws java.io.IOException
IndexWriter.getNextMerge().writer - the IndexWriter to obtain the merges from.trigger - the MergeTrigger that caused this merge to happennewMergesFound - true iff any new merges were found by the caller otherwise falsejava.io.IOExceptionpublic abstract void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablejava.io.IOExceptionfinal void setInfoStream(InfoStream infoStream)
protected boolean verbose()
message(String):
if (verbose()) {
message("your message");
}
protected void message(java.lang.String message)
verbose() was
called and returned true.