Expert: a MergePolicy determines the sequence of
primitive merge operations to be used for overall merge
and optimize operations.
Whenever the segments in an index have been altered by
IndexWriter , either the addition of a newly
flushed segment, addition of many segments from
addIndexes* calls, or a previous merge that may now need
to cascade,
IndexWriter invokes
MergePolicy.findMerges to give the MergePolicy a chance to pick
merges that are now required. This method returns a
MergeSpecification instance describing the set of
merges that should be done, or null if no merges are
necessary. When IndexWriter.optimize is called, it calls
MergePolicy.findMergesForOptimize and the MergePolicy should
then return the necessary merges.
Note that the policy can return more than one merge at
a time. In this case, if the writer is using
SerialMergeScheduler , the merges will be run
sequentially but if it is using
ConcurrentMergeScheduler they will be run concurrently.
The default MergePolicy is
LogByteSizeMergePolicy .
NOTE: This API is new and still experimental
(subject to change suddenly in the next release)
|