Package org.apache.lucene.index
Class MergeScheduler
- java.lang.Object
-
- org.apache.lucene.index.MergeScheduler
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
ConcurrentMergeScheduler
,NoMergeScheduler
,SerialMergeScheduler
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 aMergePolicy
. The default MergeScheduler isConcurrentMergeScheduler
.
-
-
Field Summary
Fields Modifier and Type Field Description protected InfoStream
infoStream
For messages about merge scheduling
-
Constructor Summary
Constructors Modifier Constructor Description protected
MergeScheduler()
Sole constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
close()
Close this MergeScheduler.abstract void
merge(IndexWriter writer, MergeTrigger trigger, boolean newMergesFound)
Run the merges provided byIndexWriter.getNextMerge()
.protected void
message(java.lang.String message)
Outputs the given message - this method assumesverbose()
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 incomingDirectory
so 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 java.io.IOException
Run the merges provided byIndexWriter.getNextMerge()
.- Parameters:
writer
- theIndexWriter
to obtain the merges from.trigger
- theMergeTrigger
that caused this merge to happennewMergesFound
-true
iff any new merges were found by the caller otherwisefalse
- Throws:
java.io.IOException
-
wrapForMerge
public Directory wrapForMerge(MergePolicy.OneMerge merge, Directory in)
Wraps the incomingDirectory
so that we can merge-throttle it usingRateLimitedIndexOutput
.
-
close
public abstract void close() throws java.io.IOException
Close this MergeScheduler.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
setInfoStream
final void setInfoStream(InfoStream infoStream)
IndexWriter calls this on init.
-
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"); }
-
message
protected void message(java.lang.String message)
Outputs the given message - this method assumesverbose()
was called and returned true.
-
-