7 #ifndef FIELDCOMPARATOR_H
8 #define FIELDCOMPARATOR_H
53 virtual int32_t compare(int32_t slot1, int32_t slot2) = 0;
58 virtual void setBottom(int32_t slot) = 0;
69 virtual int32_t compareBottom(int32_t doc) = 0;
75 virtual void copy(int32_t slot, int32_t doc) = 0;
81 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase) = 0;
85 virtual void setScorer(
const ScorerPtr& scorer);
90 virtual ComparableValue value(int32_t slot) = 0;
93 template <
typename TYPE>
112 virtual int32_t
compare(int32_t slot1, int32_t slot2) {
113 return (int32_t)(values[slot1] - values[slot2]);
117 return (int32_t)(bottom - currentReaderValues[doc]);
120 virtual void copy(int32_t slot, int32_t doc) {
121 values[slot] = currentReaderValues[doc];
125 bottom = values[slot];
128 virtual ComparableValue
value(int32_t slot) {
129 return ComparableValue(values[slot]);
145 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
160 virtual int32_t compareBottom(int32_t doc);
161 virtual void copy(int32_t slot, int32_t doc);
162 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
177 virtual int32_t compare(int32_t slot1, int32_t slot2);
178 virtual int32_t compareBottom(int32_t doc);
179 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
194 virtual int32_t compare(int32_t slot1, int32_t slot2);
195 virtual int32_t compareBottom(int32_t doc);
196 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
211 virtual int32_t compare(int32_t slot1, int32_t slot2);
212 virtual int32_t compareBottom(int32_t doc);
213 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
230 virtual int32_t compare(int32_t slot1, int32_t slot2);
231 virtual int32_t compareBottom(int32_t doc);
232 virtual void copy(int32_t slot, int32_t doc);
233 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
234 virtual void setScorer(
const ScorerPtr& scorer);
253 virtual int32_t compare(int32_t slot1, int32_t slot2);
254 virtual int32_t compareBottom(int32_t doc);
255 virtual void copy(int32_t slot, int32_t doc);
256 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
257 virtual void setBottom(int32_t slot);
258 virtual ComparableValue value(int32_t slot);
290 virtual int32_t compare(int32_t slot1, int32_t slot2);
291 virtual int32_t compareBottom(int32_t doc);
292 virtual void copy(int32_t slot, int32_t doc);
293 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
294 virtual void setBottom(int32_t slot);
295 virtual ComparableValue value(int32_t slot);
297 virtual int32_t getBottomSlot();
298 virtual String getField();
301 void convert(int32_t slot);
302 int32_t binarySearch(
Collection<String> lookup,
const String& key, int32_t low, int32_t high);
321 virtual int32_t compare(int32_t slot1, int32_t slot2);
322 virtual int32_t compareBottom(int32_t doc);
323 virtual void copy(int32_t slot, int32_t doc);
324 virtual void setNextReader(
const IndexReaderPtr& reader, int32_t docBase);
325 virtual void setBottom(int32_t slot);
326 virtual ComparableValue value(int32_t slot);
NumericComparator(int32_t numHits, const String &field=EmptyString)
Definition: FieldComparator.h:96
Collection< String > currentReaderValues
Definition: FieldComparator.h:247
int32_t bottomSlot
Definition: FieldComparator.h:283
Sorts by field's natural String sort order. All comparisons are done using String.compare, which is slow for medium to large result sets but possibly very fast for very small results sets.
Definition: FieldComparator.h:307
virtual void copy(int32_t slot, int32_t doc)
This method is called when a new hit is competitive. You should copy any state associated with this d...
Definition: FieldComparator.h:120
Parses field's values as long (using FieldCache#getLongs and sorts by ascending value.
Definition: FieldComparator.h:200
Parses field's values as int (using FieldCache#getInts and sorts by ascending value.
Definition: FieldComparator.h:183
boost::shared_ptr< DoubleParser > DoubleParserPtr
Definition: LuceneTypes.h:328
Sorts by a field's value using the Collator for a given Locale.
Definition: FieldComparator.h:238
static this_type newInstance(int32_t size=0)
Definition: Collection.h:33
virtual ComparableValue value(int32_t slot)
Return the actual value in the slot.
Definition: FieldComparator.h:128
Collection< String > values
Definition: FieldComparator.h:312
String field
Definition: FieldComparator.h:317
Collection< TYPE > values
Definition: FieldComparator.h:106
boost::shared_ptr< Scorer > ScorerPtr
Definition: LuceneTypes.h:429
Collection< int32_t > order
Definition: FieldComparator.h:280
Parses field's values as byte (using FieldCache#getBytes and sorts by ascending value.
Definition: FieldComparator.h:134
Parses field's values as double (using FieldCache#getDoubles and sorts by ascending value...
Definition: FieldComparator.h:166
Sorts by descending relevance. NOTE: if you are sorting only by descending relevance and then seconda...
Definition: FieldComparator.h:219
TYPE bottom
Definition: FieldComparator.h:109
virtual int32_t compareBottom(int32_t doc)
Compare the bottom of the queue with doc. This will only invoked after setBottom has been called...
Definition: FieldComparator.h:116
boost::shared_ptr< Parser > ParserPtr
Definition: LuceneTypes.h:401
String bottomValue
Definition: FieldComparator.h:285
String bottom
Definition: FieldComparator.h:250
A FieldComparator compares hits so as to determine their sort order when collecting the top results w...
Definition: FieldComparator.h:42
virtual int32_t compare(int32_t slot1, int32_t slot2)
Compare hit at slot1 with hit at slot2.
Definition: FieldComparator.h:112
boost::shared_ptr< ByteParser > ByteParserPtr
Definition: LuceneTypes.h:289
Sorts by ascending docID.
Definition: FieldComparator.h:149
Collection< String > currentReaderValues
Definition: FieldComparator.h:316
int32_t currentReaderGen
Definition: FieldComparator.h:278
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
Collection< TYPE > currentReaderValues
Definition: FieldComparator.h:107
String field
Definition: FieldComparator.h:108
Base class for all Lucene classes.
Definition: LuceneObject.h:31
virtual ~NumericComparator()
Definition: FieldComparator.h:102
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< IntParser > IntParserPtr
Definition: LuceneTypes.h:376
Definition: FieldComparator.h:94
Collection< String > lookup
Definition: FieldComparator.h:279
int32_t bottomOrd
Definition: FieldComparator.h:284
Collection< String > values
Definition: FieldComparator.h:275
String field
Definition: FieldComparator.h:248
Utility template class to handle collections that can be safely copied and shared.
Definition: Collection.h:17
boost::shared_ptr< LongParser > LongParserPtr
Definition: LuceneTypes.h:378
bool reversed
Definition: FieldComparator.h:286
String field
Definition: FieldComparator.h:281
virtual void setBottom(int32_t slot)
Set the bottom slot, ie the "weakest" (sorted last) entry in the queue. When compareBottom is called...
Definition: FieldComparator.h:124
Sorts by field's natural String sort order, using ordinals. This is functionally equivalent to String...
Definition: FieldComparator.h:266
CollatorPtr collator
Definition: FieldComparator.h:249
int32_t sortPos
Definition: FieldComparator.h:287
String bottom
Definition: FieldComparator.h:318
boost::shared_ptr< Collator > CollatorPtr
Definition: LuceneTypes.h:525
Collection< int32_t > readerGen
Definition: FieldComparator.h:276
Collection< String > values
Definition: FieldComparator.h:243