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
{@link 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, {@link IndexWriter} invokes {@link
#findMerges} to give the MergePolicy a chance to pick
merges that are now required. This method returns a
{@link 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
{@link #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 {@link
SerialMergeScheduler}, the merges will be run
sequentially but if it is using {@link
ConcurrentMergeScheduler} they will be run concurrently.The default MergePolicy is {@link
LogByteSizeMergePolicy}.NOTE: This API is new and still experimental
(subject to change suddenly in the next release)NOTE: This class typically requires access to
package-private APIs (e.g. ) to do its job;
if you implement your own MergePolicy, you'll need to put
it in package Lucene.Net.Index in order to use
these APIs.
Namespace: Lucene.Net.IndexCopyC#
SegmentInfos
Assembly: Lucene.Net (in Lucene.Net.dll) Version: 2.9.4.1
Syntax
C# |
---|
public abstract class MergePolicy |
Visual Basic |
---|
Public MustInherit Class MergePolicy |
Visual C++ |
---|
public ref class MergePolicy abstract |