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 false
java.io.IOException
public abstract void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
final 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.