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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
Lucene::ScoreCachingWrappingScorer Class Reference

A Scorer which wraps another scorer and caches the score of the current document. Successive calls to score() will return the same result and will not invoke the wrapped Scorer's score() method, unless the current document has changed. More...

#include <ScoreCachingWrappingScorer.h>

+ Inheritance diagram for Lucene::ScoreCachingWrappingScorer:

Public Member Functions

 ScoreCachingWrappingScorer (ScorerPtr scorer)
 Creates a new instance by wrapping the given scorer. More...
 
virtual ~ScoreCachingWrappingScorer ()
 
virtual String getClassName ()
 
boost::shared_ptr
< ScoreCachingWrappingScorer
shared_from_this ()
 
SimilarityPtr getSimilarity ()
 
virtual double score ()
 Returns the score of the current document matching the query. Initially invalid, until nextDoc() or advance(int32_t) is called the first time, or when called from within Collector#collect. More...
 
virtual int32_t docID ()
 Returns the following: More...
 
virtual int32_t nextDoc ()
 Advances to the next document in the set and returns the doc it is currently on, or NO_MORE_DOCS if there are no more docs in the set. More...
 
virtual void score (CollectorPtr collector)
 Scores and collects all matching documents. More...
 
virtual int32_t advance (int32_t target)
 Advances to the first beyond the current whose document number is greater than or equal to target. Returns the current document number or NO_MORE_DOCS if there are no more docs in the set. More...
 
- Public Member Functions inherited from Lucene::Scorer
 Scorer (SimilarityPtr similarity)
 Constructs a Scorer. More...
 
virtual ~Scorer ()
 
boost::shared_ptr< Scorershared_from_this ()
 
SimilarityPtr getSimilarity ()
 Returns the Similarity implementation used by this scorer. More...
 
- Public Member Functions inherited from Lucene::DocIdSetIterator
virtual ~DocIdSetIterator ()
 
boost::shared_ptr
< DocIdSetIterator
shared_from_this ()
 
- 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. More...
 
virtual LuceneObjectPtr clone (LuceneObjectPtr other=LuceneObjectPtr())
 Return clone of this object. More...
 
virtual int32_t hashCode ()
 Return hash code for this object. More...
 
virtual bool equals (LuceneObjectPtr other)
 Return whether two objects are equal. More...
 
virtual int32_t compareTo (LuceneObjectPtr other)
 Compare two objects. More...
 
virtual String toString ()
 Returns a string representation of the object. More...
 
- Public Member Functions inherited from Lucene::LuceneSync
virtual ~LuceneSync ()
 
virtual SynchronizePtr getSync ()
 Return this object synchronize lock. More...
 
virtual LuceneSignalPtr getSignal ()
 Return this object signal. More...
 
virtual void lock (int32_t timeout=0)
 Lock this object using an optional timeout. More...
 
virtual void unlock ()
 Unlock this object. More...
 
virtual bool holdsLock ()
 Returns true if this object is currently locked by current thread. More...
 
virtual void wait (int32_t timeout=0)
 Wait for signal using an optional timeout. More...
 
virtual void notifyAll ()
 Notify all threads waiting for signal. More...
 

Static Public Member Functions

static String _getClassName ()
 
- Static Public Member Functions inherited from Lucene::Scorer
static String _getClassName ()
 
- Static Public Member Functions inherited from Lucene::DocIdSetIterator
static String _getClassName ()
 

Protected Member Functions

virtual bool score (CollectorPtr collector, int32_t max, int32_t firstDocID)
 Collects matching documents in a range. Hook for optimization. Note, firstDocID is added to ensure that nextDoc() was called before this method. More...
 

Protected Attributes

ScorerWeakPtr _scorer
 
int32_t curDoc
 
double curScore
 
- Protected Attributes inherited from Lucene::Scorer
SimilarityPtr similarity
 

Additional Inherited Members

- Static Public Attributes inherited from Lucene::DocIdSetIterator
static const int32_t NO_MORE_DOCS
 When returned by nextDoc(), advance(int) and docID() it means there are no more docs in the iterator. More...
 

Detailed Description

A Scorer which wraps another scorer and caches the score of the current document. Successive calls to score() will return the same result and will not invoke the wrapped Scorer's score() method, unless the current document has changed.

This class might be useful due to the changes done to the Collector interface, in which the score is not computed for a document by default, only if the collector requests it. Some collectors may need to use the score in several places, however all they have in hand is a Scorer object, and might end up computing the score of a document more than once.

Constructor & Destructor Documentation

Lucene::ScoreCachingWrappingScorer::ScoreCachingWrappingScorer ( ScorerPtr  scorer)

Creates a new instance by wrapping the given scorer.

virtual Lucene::ScoreCachingWrappingScorer::~ScoreCachingWrappingScorer ( )
virtual

Member Function Documentation

static String Lucene::ScoreCachingWrappingScorer::_getClassName ( )
inlinestatic
virtual int32_t Lucene::ScoreCachingWrappingScorer::advance ( int32_t  target)
virtual

Advances to the first beyond the current whose document number is greater than or equal to target. Returns the current document number or NO_MORE_DOCS if there are no more docs in the set.

Behaves as if written:

int32_t advance(int32_t target)
{
    int32_t doc;
    while ((doc = nextDoc()) < target)
    { }
    return doc;
}

Some implementations are considerably more efficient than that.

NOTE: certain implementations may return a different value (each time) if called several times in a row with the same target.

NOTE: this method may be called with { NO_MORE_DOCS} for efficiency by some Scorers. If your implementation cannot efficiently determine that it should exhaust, it is recommended that you check for that value in each call to this method.

NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behaviour.

Implements Lucene::DocIdSetIterator.

virtual int32_t Lucene::ScoreCachingWrappingScorer::docID ( )
virtual

Returns the following:

Implements Lucene::DocIdSetIterator.

virtual String Lucene::ScoreCachingWrappingScorer::getClassName ( )
inlinevirtual

Reimplemented from Lucene::Scorer.

SimilarityPtr Lucene::ScoreCachingWrappingScorer::getSimilarity ( )
virtual int32_t Lucene::ScoreCachingWrappingScorer::nextDoc ( )
virtual

Advances to the next document in the set and returns the doc it is currently on, or NO_MORE_DOCS if there are no more docs in the set.

NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behaviour.

Implements Lucene::DocIdSetIterator.

virtual double Lucene::ScoreCachingWrappingScorer::score ( )
virtual

Returns the score of the current document matching the query. Initially invalid, until nextDoc() or advance(int32_t) is called the first time, or when called from within Collector#collect.

Implements Lucene::Scorer.

virtual void Lucene::ScoreCachingWrappingScorer::score ( CollectorPtr  collector)
virtual

Scores and collects all matching documents.

Parameters
collectorThe collector to which all matching documents are passed.

Reimplemented from Lucene::Scorer.

virtual bool Lucene::ScoreCachingWrappingScorer::score ( CollectorPtr  collector,
int32_t  max,
int32_t  firstDocID 
)
protectedvirtual

Collects matching documents in a range. Hook for optimization. Note, firstDocID is added to ensure that nextDoc() was called before this method.

Parameters
collectorThe collector to which all matching documents are passed.
maxDo not score documents past this.
firstDocIDThe first document ID (ensures nextDoc() is called before this method.
Returns
true if more matching documents may remain.

Reimplemented from Lucene::Scorer.

boost::shared_ptr< ScoreCachingWrappingScorer > Lucene::ScoreCachingWrappingScorer::shared_from_this ( )
inline

Field Documentation

ScorerWeakPtr Lucene::ScoreCachingWrappingScorer::_scorer
protected
int32_t Lucene::ScoreCachingWrappingScorer::curDoc
protected
double Lucene::ScoreCachingWrappingScorer::curScore
protected

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

clucene.sourceforge.net