Lucene++ - a full-featured, c++ search engine
API Documentation

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
Lucene::StringOrdValComparator Class Reference

Sorts by field's natural String sort order, using ordinals. This is functionally equivalent to `StringValComparator`, but it first resolves the string to their relative ordinal positions (using the index returned by `FieldCache#getStringIndex`), and does most comparisons using the ordinals. For medium to large results, this comparator will be much faster than `StringValComparator`. For very small result sets it may be slower. More...

`#include <FieldComparator.h>`

Inheritance diagram for Lucene::StringOrdValComparator:

## Public Member Functions

| StringOrdValComparator (int32_t numHits, const String &field, int32_t sortPos, bool reversed)
virtual | ~StringOrdValComparator ()
virtual String | getClassName ()
boost::shared_ptr< StringOrdValComparator > | shared_from_this ()
virtual int32_t | compare (int32_t slot1, int32_t slot2)
| Compare hit at slot1 with hit at slot2.
virtual int32_t | compareBottom (int32_t doc)
| Compare the bottom of the queue with doc. This will only invoked after setBottom has been called. This should return the same result as `compare(int,int)`} as if bottom were slot1 and the new document were slot 2.
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 document that will be required for future comparisons, into the specified slot.
virtual void | setNextReader (const IndexReaderPtr &reader, int32_t docBase)
| Set a new Reader. All doc correspond to the current Reader.
virtual void | setBottom (int32_t slot)
| Set the bottom slot, ie the "weakest" (sorted last) entry in the queue. When `compareBottom` is called, you should compare against this slot. This will always be called before `compareBottom`.
virtual ComparableValue | value (int32_t slot)
| Return the actual value in the slot.
virtual Collection< String > | getValues ()
virtual int32_t | getBottomSlot ()
virtual String | getField ()
Public Member Functions inherited from Lucene::FieldComparator
virtual | ~FieldComparator ()
boost::shared_ptr< FieldComparator > | shared_from_this ()
virtual void | setScorer (const ScorerPtr &scorer)
| Sets the Scorer to use in case a document's score is needed.
Public Member Functions inherited from Lucene::LuceneObject
virtual | ~LuceneObject ()
virtual void | initialize ()
| Called directly after instantiation to create objects that depend on this object being fully constructed.
virtual LuceneObjectPtr | clone (const LuceneObjectPtr &other=LuceneObjectPtr())
| Return clone of this object.
virtual int32_t | hashCode ()
| Return hash code for this object.
virtual bool | equals (const LuceneObjectPtr &other)
| Return whether two objects are equal.
virtual int32_t | compareTo (const LuceneObjectPtr &other)
| Compare two objects.
virtual String | toString ()
| Returns a string representation of the object.
Public Member Functions inherited from Lucene::LuceneSync
virtual | ~LuceneSync ()
virtual SynchronizePtr | getSync ()
| Return this object synchronize lock.
virtual LuceneSignalPtr | getSignal ()
| Return this object signal.
virtual void | lock (int32_t timeout=0)
| Lock this object using an optional timeout.
virtual void | unlock ()
| Unlock this object.
virtual bool | holdsLock ()
| Returns true if this object is currently locked by current thread.
virtual void | wait (int32_t timeout=0)
| Wait for signal using an optional timeout.
virtual void | notifyAll ()
| Notify all threads waiting for signal.

## Static Public Member Functions

static String | _getClassName ()
Static Public Member Functions inherited from Lucene::FieldComparator
static String | _getClassName ()

## Protected Member Functions

void | convert (int32_t slot)
int32_t | binarySearch (Collection< String > lookup, const String &key, int32_t low, int32_t high)
Protected Member Functions inherited from Lucene::LuceneObject
| LuceneObject ()

## Protected Attributes

Collection< int32_t > | ords
Collection< String > | values
Collection< int32_t > | readerGen
int32_t | currentReaderGen
Collection< String > | lookup
Collection< int32_t > | order
String | field
int32_t | bottomSlot
int32_t | bottomOrd
String | bottomValue
bool | reversed
int32_t | sortPos
Protected Attributes inherited from Lucene::LuceneSync
SynchronizePtr | objectLock
LuceneSignalPtr | objectSignal

## Detailed Description

Sorts by field's natural String sort order, using ordinals. This is functionally equivalent to `StringValComparator`, but it first resolves the string to their relative ordinal positions (using the index returned by `FieldCache#getStringIndex`), and does most comparisons using the ordinals. For medium to large results, this comparator will be much faster than `StringValComparator`. For very small result sets it may be slower.

## Constructor & Destructor Documentation

## ◆ StringOrdValComparator()

Lucene::StringOrdValComparator::StringOrdValComparator | ( | int32_t | numHits,
|  | const String & | field,
|  | int32_t | sortPos,
|  | bool | reversed )

References field, reversed, and sortPos.

Referenced by _getClassName().

## ◆ ~StringOrdValComparator()

virtual Lucene::StringOrdValComparator::~StringOrdValComparator | ( |  | ) |

virtual

## Member Function Documentation

## ◆ _getClassName()

String Lucene::StringOrdValComparator::_getClassName | ( |  | ) |

inline static

References StringOrdValComparator().

## ◆ binarySearch()

int32_t Lucene::StringOrdValComparator::binarySearch | ( | Collection< String > | lookup,
|  | const String & | key,
|  | int32_t | low,
|  | int32_t | high )

protected

References lookup.

## ◆ compare()

virtual int32_t Lucene::StringOrdValComparator::compare | ( | int32_t | slot1,
|  | int32_t | slot2 )

virtual

Compare hit at slot1 with hit at slot2.

Parameters

  slot1 | first slot to compare
  slot2 | second slot to compare

Returns
  any N < 0 if slot2's value is sorted after slot1, any N > 0 if the slot2's value is sorted before slot1 and 0 if they are equal

Implements Lucene::FieldComparator.

## ◆ compareBottom()

virtual int32_t Lucene::StringOrdValComparator::compareBottom | ( | int32_t | doc | ) |

virtual

Compare the bottom of the queue with doc. This will only invoked after setBottom has been called. This should return the same result as `compare(int,int)`} as if bottom were slot1 and the new document were slot 2.

For a search that hits many results, this method will be the hotspot (invoked by far the most frequently).

Parameters

  doc | that was hit

Returns
  any N < 0 if the doc's value is sorted after the bottom entry (not competitive), any N > 0 if the doc's value is sorted before the bottom entry and 0 if they are equal.

Implements Lucene::FieldComparator.

## ◆ convert()

void Lucene::StringOrdValComparator::convert | ( | int32_t | slot | ) |

protected

## ◆ copy()

virtual void Lucene::StringOrdValComparator::copy | ( | int32_t | slot,
|  | int32_t | doc )

virtual

This method is called when a new hit is competitive. You should copy any state associated with this document that will be required for future comparisons, into the specified slot.

Parameters

  slot | which slot to copy the hit to
  doc | docID relative to current reader

Implements Lucene::FieldComparator.

## ◆ getBottomSlot()

virtual int32_t Lucene::StringOrdValComparator::getBottomSlot | ( |  | ) |

virtual

## ◆ getClassName()

virtual String Lucene::StringOrdValComparator::getClassName | ( |  | ) |

inline virtual

Reimplemented from Lucene::FieldComparator.

## ◆ getField()

virtual String Lucene::StringOrdValComparator::getField | ( |  | ) |

virtual

## ◆ getValues()

virtual Collection< String > Lucene::StringOrdValComparator::getValues | ( |  | ) |

virtual

## ◆ setBottom()

virtual void Lucene::StringOrdValComparator::setBottom | ( | int32_t | slot | ) |

virtual

Set the bottom slot, ie the "weakest" (sorted last) entry in the queue. When `compareBottom` is called, you should compare against this slot. This will always be called before `compareBottom`.

Parameters

  slot | the currently weakest (sorted last) slot in the queue

Implements Lucene::FieldComparator.

## ◆ setNextReader()

virtual void Lucene::StringOrdValComparator::setNextReader | ( | const IndexReaderPtr & | reader,
|  | int32_t | docBase )

virtual

Set a new Reader. All doc correspond to the current Reader.

Parameters

  reader | current reader
  docBase | docBase of this reader

Implements Lucene::FieldComparator.

## ◆ shared_from_this()

boost::shared_ptr< StringOrdValComparator > Lucene::StringOrdValComparator::shared_from_this | ( |  | ) |

inline

## ◆ value()

virtual ComparableValue Lucene::StringOrdValComparator::value | ( | int32_t | slot | ) |

virtual

Return the actual value in the slot.

Parameters

  slot | the value

Returns
  value in this slot upgraded to ComparableValue

Implements Lucene::FieldComparator.

## Field Documentation

## ◆ bottomOrd

int32_t Lucene::StringOrdValComparator::bottomOrd

protected

## ◆ bottomSlot

int32_t Lucene::StringOrdValComparator::bottomSlot

protected

## ◆ bottomValue

String Lucene::StringOrdValComparator::bottomValue

protected

## ◆ currentReaderGen

int32_t Lucene::StringOrdValComparator::currentReaderGen

protected

## ◆ field

String Lucene::StringOrdValComparator::field

protected

Referenced by StringOrdValComparator().

## ◆ lookup

Collection<String> Lucene::StringOrdValComparator::lookup

protected

Referenced by binarySearch().

## ◆ order

Collection<int32_t> Lucene::StringOrdValComparator::order

protected

## ◆ ords

Collection<int32_t> Lucene::StringOrdValComparator::ords

protected

## ◆ readerGen

Collection<int32_t> Lucene::StringOrdValComparator::readerGen

protected

## ◆ reversed

bool Lucene::StringOrdValComparator::reversed

protected

Referenced by StringOrdValComparator().

## ◆ sortPos

int32_t Lucene::StringOrdValComparator::sortPos

protected

Referenced by StringOrdValComparator().

## ◆ values

Collection<String> Lucene::StringOrdValComparator::values

protected

The documentation for this class was generated from the following file:

- FieldComparator.h

clucene.sourceforge.net