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::PhraseScorer Class Referenceabstract

Scoring functionality for phrase queries. A document is considered matching if it contains the phrase-query terms at "valid" positions. What "valid positions" are depends on the type of the phrase query: for an exact phrase query terms are required to appear in adjacent locations, while for a sloppy phrase query some distance between the terms is allowed. The abstract method phraseFreq() of extending classes is invoked for each document containing all the phrase query terms, in order to compute the frequency of the phrase query in that document. A non zero frequency means a match. More...

#include <PhraseScorer.h>

+ Inheritance diagram for Lucene::PhraseScorer:

Public Member Functions

 PhraseScorer (const WeightPtr &weight, Collection< TermPositionsPtr > tps, Collection< int32_t > offsets, const SimilarityPtr &similarity, ByteArray norms)
 
virtual ~PhraseScorer ()
 
virtual String getClassName ()
 
boost::shared_ptr< PhraseScorershared_from_this ()
 
virtual int32_t docID ()
 Returns the following:
 
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.
 
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.
 
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.
 
double currentFreq ()
 Phrase frequency in current doc as computed by phraseFreq().
 
virtual float termFreq ()
 
virtual String toString ()
 Returns a string representation of the object.
 
- Public Member Functions inherited from Lucene::Scorer
 Scorer (const SimilarityPtr &similarity)
 Constructs a Scorer.
 
 Scorer (const WeightPtr &weight)
 
virtual ~Scorer ()
 
boost::shared_ptr< Scorershared_from_this ()
 
SimilarityPtr getSimilarity ()
 Returns the Similarity implementation used by this scorer.
 
virtual void score (const CollectorPtr &collector)
 Scores and collects all matching documents.
 
void visitSubScorers (QueryPtr parent, BooleanClause::Occur relationship, ScorerVisitor *visitor)
 
void visitScorers (ScorerVisitor *visitor)
 
- Public Member Functions inherited from Lucene::DocIdSetIterator
virtual ~DocIdSetIterator ()
 
boost::shared_ptr< DocIdSetIteratorshared_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.
 
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.
 
- 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::Scorer
static String _getClassName ()
 
- Static Public Member Functions inherited from Lucene::DocIdSetIterator
static String _getClassName ()
 

Protected Member Functions

bool doNext ()
 Next without initial increment.
 
virtual double phraseFreq ()=0
 For a document containing all the phrase query terms, compute the frequency of the phrase in that document. A non zero frequency means a match. Note, that containing all phrase terms does not guarantee a match - they have to be found in matching locations.
 
void init ()
 
void sort ()
 
void pqToList ()
 
void firstToLast ()
 
- Protected Member Functions inherited from Lucene::Scorer
virtual bool score (const 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.
 
- Protected Member Functions inherited from Lucene::LuceneObject
 LuceneObject ()
 

Protected Attributes

WeightPtr weight
 
Weight__weight = nullptr
 
ByteArray norms
 
double value
 
bool firstTime
 
bool more
 
PhraseQueuePtr pq
 
std::vector< PhrasePositionsPtr_holds
 
PhrasePositions__first = nullptr
 
PhrasePositions__last = nullptr
 
double freq
 
- Protected Attributes inherited from Lucene::Scorer
SimilarityPtr similarity
 
- Protected Attributes inherited from Lucene::LuceneSync
SynchronizePtr objectLock
 
LuceneSignalPtr objectSignal
 

Additional Inherited Members

- Data Fields inherited from Lucene::Scorer
WeightPtr weight
 
- 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.
 

Detailed Description

Scoring functionality for phrase queries. A document is considered matching if it contains the phrase-query terms at "valid" positions. What "valid positions" are depends on the type of the phrase query: for an exact phrase query terms are required to appear in adjacent locations, while for a sloppy phrase query some distance between the terms is allowed. The abstract method phraseFreq() of extending classes is invoked for each document containing all the phrase query terms, in order to compute the frequency of the phrase query in that document. A non zero frequency means a match.

Constructor & Destructor Documentation

◆ PhraseScorer()

Lucene::PhraseScorer::PhraseScorer ( const WeightPtr weight,
Collection< TermPositionsPtr tps,
Collection< int32_t >  offsets,
const SimilarityPtr similarity,
ByteArray  norms 
)

◆ ~PhraseScorer()

virtual Lucene::PhraseScorer::~PhraseScorer ( )
virtual

Member Function Documentation

◆ _getClassName()

static String Lucene::PhraseScorer::_getClassName ( )
inlinestatic

◆ advance()

virtual int32_t Lucene::PhraseScorer::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 {@value 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.

◆ currentFreq()

double Lucene::PhraseScorer::currentFreq ( )

Phrase frequency in current doc as computed by phraseFreq().

Referenced by termFreq().

◆ docID()

virtual int32_t Lucene::PhraseScorer::docID ( )
virtual

Returns the following:

Implements Lucene::DocIdSetIterator.

◆ doNext()

bool Lucene::PhraseScorer::doNext ( )
protected

Next without initial increment.

◆ firstToLast()

void Lucene::PhraseScorer::firstToLast ( )
protected

◆ getClassName()

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

Reimplemented from Lucene::Scorer.

Reimplemented in Lucene::ExactPhraseScorer, and Lucene::SloppyPhraseScorer.

◆ init()

void Lucene::PhraseScorer::init ( )
protected

◆ nextDoc()

virtual int32_t Lucene::PhraseScorer::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.

◆ phraseFreq()

virtual double Lucene::PhraseScorer::phraseFreq ( )
protectedpure virtual

For a document containing all the phrase query terms, compute the frequency of the phrase in that document. A non zero frequency means a match. Note, that containing all phrase terms does not guarantee a match - they have to be found in matching locations.

Returns
frequency of the phrase in current doc, 0 if not found.

Implemented in Lucene::ExactPhraseScorer, and Lucene::SloppyPhraseScorer.

◆ pqToList()

void Lucene::PhraseScorer::pqToList ( )
protected

◆ score()

virtual double Lucene::PhraseScorer::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.

◆ shared_from_this()

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

◆ sort()

void Lucene::PhraseScorer::sort ( )
protected

◆ termFreq()

virtual float Lucene::PhraseScorer::termFreq ( )
inlinevirtual

Reimplemented from Lucene::Scorer.

References currentFreq().

◆ toString()

virtual String Lucene::PhraseScorer::toString ( )
virtual

Returns a string representation of the object.

Reimplemented from Lucene::LuceneObject.

Field Documentation

◆ __first

PhrasePositions* Lucene::PhraseScorer::__first = nullptr
protected

◆ __last

PhrasePositions* Lucene::PhraseScorer::__last = nullptr
protected

◆ __weight

Weight* Lucene::PhraseScorer::__weight = nullptr
protected

◆ _holds

std::vector<PhrasePositionsPtr> Lucene::PhraseScorer::_holds
protected

◆ firstTime

bool Lucene::PhraseScorer::firstTime
protected

◆ freq

double Lucene::PhraseScorer::freq
protected

◆ more

bool Lucene::PhraseScorer::more
protected

◆ norms

ByteArray Lucene::PhraseScorer::norms
protected

◆ pq

PhraseQueuePtr Lucene::PhraseScorer::pq
protected

◆ value

double Lucene::PhraseScorer::value
protected

◆ weight

WeightPtr Lucene::PhraseScorer::weight
protected

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

clucene.sourceforge.net