org.apache.lucene.index.sorter
public final class SortingMergePolicy extends MergePolicy
MergePolicy
that reorders documents according to a Sorter
before merging them. As a consequence, all segments resulting from a merge
will be sorted while segments resulting from a flush will be in the order
in which documents have been added.
NOTE: Never use this MergePolicy
if you rely on
IndexWriter.addDocuments(Iterable, org.apache.lucene.analysis.Analyzer)
to have sequentially-assigned doc IDs, this policy will scatter doc IDs.
NOTE: This MergePolicy
should only be used with idempotent
Sorter
s so that the order of segments is predictable. For example,
using SortingMergePolicy
with Sorter.REVERSE_DOCS
(which is
not idempotent) will make the order of documents in a segment depend on the
number of times the segment has been merged.
MergePolicy.DocMap, MergePolicy.MergeAbortedException, MergePolicy.MergeException, MergePolicy.MergeSpecification, MergePolicy.MergeTrigger, MergePolicy.OneMerge
Modifier and Type | Field and Description |
---|---|
static String |
SORTER_ID_PROP
Put in the
diagnostics to denote that
this segment is sorted. |
DEFAULT_MAX_CFS_SEGMENT_SIZE, DEFAULT_NO_CFS_RATIO, maxCFSSegmentSize, noCFSRatio, writer
Constructor and Description |
---|
SortingMergePolicy(MergePolicy in,
Sorter sorter)
Create a new
MergePolicy that sorts documents with sorter . |
Modifier and Type | Method and Description |
---|---|
MergePolicy |
clone() |
void |
close() |
MergePolicy.MergeSpecification |
findForcedDeletesMerges(SegmentInfos segmentInfos) |
MergePolicy.MergeSpecification |
findForcedMerges(SegmentInfos segmentInfos,
int maxSegmentCount,
Map<SegmentInfoPerCommit,Boolean> segmentsToMerge) |
MergePolicy.MergeSpecification |
findMerges(MergePolicy.MergeTrigger mergeTrigger,
SegmentInfos segmentInfos) |
static boolean |
isSorted(AtomicReader reader,
Sorter sorter)
Returns true if the given reader is sorted by the given sorter.
|
void |
setIndexWriter(IndexWriter writer) |
String |
toString() |
boolean |
useCompoundFile(SegmentInfos segments,
SegmentInfoPerCommit newSegment) |
getMaxCFSSegmentSizeMB, getNoCFSRatio, isMerged, setMaxCFSSegmentSizeMB, setNoCFSRatio, size
public static final String SORTER_ID_PROP
diagnostics
to denote that
this segment is sorted.public SortingMergePolicy(MergePolicy in, Sorter sorter)
MergePolicy
that sorts documents with sorter
.public static boolean isSorted(AtomicReader reader, Sorter sorter)
public MergePolicy.MergeSpecification findMerges(MergePolicy.MergeTrigger mergeTrigger, SegmentInfos segmentInfos) throws IOException
findMerges
in class MergePolicy
IOException
public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentInfoPerCommit,Boolean> segmentsToMerge) throws IOException
findForcedMerges
in class MergePolicy
IOException
public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos) throws IOException
findForcedDeletesMerges
in class MergePolicy
IOException
public MergePolicy clone()
clone
in class MergePolicy
public void close()
close
in interface Closeable
close
in class MergePolicy
public boolean useCompoundFile(SegmentInfos segments, SegmentInfoPerCommit newSegment) throws IOException
useCompoundFile
in class MergePolicy
IOException
public void setIndexWriter(IndexWriter writer)
setIndexWriter
in class MergePolicy
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.