Expert: a FieldComparator compares hits so as to determine their
sort order when collecting the top results with {@link
TopFieldCollector}. The concrete public FieldComparator
classes here correspond to the SortField types.
This API is designed to achieve high performance
sorting, by exposing a tight interaction with {@link
FieldValueHitQueue} as it visits hits. Whenever a hit is
competitive, it's enrolled into a virtual slot, which is
an int ranging from 0 to numHits-1. The {@link
FieldComparator} is made aware of segment transitions
during searching in case any internal state it's tracking
needs to be recomputed during these transitions.A comparator must define these functions:
Namespace: Lucene.Net.Search- {@link #compare} Compare a hit at 'slot a' with hit 'slot b'.
- {@link #setBottom} This method is called by {@link FieldValueHitQueue} to notify the FieldComparator of the current weakest ("bottom") slot. Note that this slot may not hold the weakest value according to your comparator, in cases where your comparator is not the primary one (ie, is only used to break ties from the comparators before it).
- {@link #compareBottom} Compare a new hit (docID) against the "weakest" (bottom) entry in the queue.
- {@link #copy} Installs a new hit into the priority queue. The {@link FieldValueHitQueue} calls this method when a new hit is competitive.
- {@link #setNextReader} Invoked when the search is switching to the next segment. You may need to update internal state of the comparator, for example retrieving new values from the {@link FieldCache}.
- {@link #value} Return the sort value stored in the specified slot. This is only called at the end of the search, in order to populate {@link FieldDoc#fields} when returning the top results.
Assembly: Lucene.Net (in Lucene.Net.dll) Version: 2.9.4.1
Syntax
C# |
---|
public abstract class FieldComparator |
Visual Basic |
---|
Public MustInherit Class FieldComparator |
Visual C++ |
---|
public ref class FieldComparator abstract |
Inheritance Hierarchy
System..::..Object
Lucene.Net.Search..::..FieldComparator
Lucene.Net.Search..::..FieldComparator..::..ByteComparator
Lucene.Net.Search..::..FieldComparator..::..DocComparator
Lucene.Net.Search..::..FieldComparator..::..DoubleComparator
Lucene.Net.Search..::..FieldComparator..::..FloatComparator
Lucene.Net.Search..::..FieldComparator..::..IntComparator
Lucene.Net.Search..::..FieldComparator..::..LongComparator
Lucene.Net.Search..::..FieldComparator..::..RelevanceComparator
Lucene.Net.Search..::..FieldComparator..::..ShortComparator
Lucene.Net.Search..::..FieldComparator..::..StringComparatorLocale
Lucene.Net.Search..::..FieldComparator..::..StringOrdValComparator
Lucene.Net.Search..::..FieldComparator..::..StringValComparator
Lucene.Net.Search..::..FieldComparator
Lucene.Net.Search..::..FieldComparator..::..ByteComparator
Lucene.Net.Search..::..FieldComparator..::..DocComparator
Lucene.Net.Search..::..FieldComparator..::..DoubleComparator
Lucene.Net.Search..::..FieldComparator..::..FloatComparator
Lucene.Net.Search..::..FieldComparator..::..IntComparator
Lucene.Net.Search..::..FieldComparator..::..LongComparator
Lucene.Net.Search..::..FieldComparator..::..RelevanceComparator
Lucene.Net.Search..::..FieldComparator..::..ShortComparator
Lucene.Net.Search..::..FieldComparator..::..StringComparatorLocale
Lucene.Net.Search..::..FieldComparator..::..StringOrdValComparator
Lucene.Net.Search..::..FieldComparator..::..StringValComparator