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
.
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.
|
Directory |
wrapForMerge(MergePolicy.OneMerge merge,
Directory in)
Wraps the incoming
Directory so that we can merge-throttle it
using RateLimitedIndexOutput . |
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 Directory wrapForMerge(MergePolicy.OneMerge merge, Directory in)
Directory
so that we can merge-throttle it
using RateLimitedIndexOutput
.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.