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::DisjunctionMaxScorer Class Reference

The Scorer for DisjunctionMaxQuery. The union of all documents generated by the the subquery scorers is generated in document number order. The score for each document is the maximum of the scores computed by the subquery scorers that generate that document, plus tieBreakerMultiplier times the sum of the scores for the other subqueries that generate the document. More...

#include <DisjunctionMaxScorer.h>

+ Inheritance diagram for Lucene::DisjunctionMaxScorer:

Public Member Functions

 DisjunctionMaxScorer (double tieBreakerMultiplier, const SimilarityPtr &similarity, Collection< ScorerPtr > subScorers, int32_t numScorers)
 
virtual ~DisjunctionMaxScorer ()
 
virtual String getClassName ()
 
boost::shared_ptr< DisjunctionMaxScorershared_from_this ()
 
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 int32_t docID ()
 Returns the following:
 
virtual double score ()
 Determine the current document score. Initially invalid, until next() is called the first time.
 
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.
 
- 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)
 
virtual float termFreq ()
 
- 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.
 
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::Scorer
static String _getClassName ()
 
- Static Public Member Functions inherited from Lucene::DocIdSetIterator
static String _getClassName ()
 

Protected Member Functions

void scoreAll (int32_t root, int32_t size, int32_t doc, Collection< double > sum, Collection< double > max)
 Recursively iterate all subScorers that generated last doc computing sum and max.
 
void heapify ()
 Organize subScorers into a min heap with scorers generating the earliest document on top.
 
void heapAdjust (int32_t root)
 The subtree of subScorers at root is a min heap except possibly for its root element. Bubble the root down as required to make the subtree a heap.
 
void heapRemoveRoot ()
 Remove the root Scorer from subScorers and re-establish it as a heap.
 
- 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

Collection< ScorerPtrsubScorers
 The scorers for subqueries that have remaining docs, kept as a min heap by number of next doc.
 
int32_t numScorers
 
double tieBreakerMultiplier
 Multiplier applied to non-maximum-scoring subqueries for a document as they are summed into the result.
 
int32_t doc
 
- 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

The Scorer for DisjunctionMaxQuery. The union of all documents generated by the the subquery scorers is generated in document number order. The score for each document is the maximum of the scores computed by the subquery scorers that generate that document, plus tieBreakerMultiplier times the sum of the scores for the other subqueries that generate the document.

Constructor & Destructor Documentation

◆ DisjunctionMaxScorer()

Lucene::DisjunctionMaxScorer::DisjunctionMaxScorer ( double  tieBreakerMultiplier,
const SimilarityPtr similarity,
Collection< ScorerPtr subScorers,
int32_t  numScorers 
)

◆ ~DisjunctionMaxScorer()

virtual Lucene::DisjunctionMaxScorer::~DisjunctionMaxScorer ( )
virtual

Member Function Documentation

◆ _getClassName()

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

◆ advance()

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

◆ docID()

virtual int32_t Lucene::DisjunctionMaxScorer::docID ( )
virtual

Returns the following:

Implements Lucene::DocIdSetIterator.

◆ getClassName()

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

Reimplemented from Lucene::Scorer.

◆ heapAdjust()

void Lucene::DisjunctionMaxScorer::heapAdjust ( int32_t  root)
protected

The subtree of subScorers at root is a min heap except possibly for its root element. Bubble the root down as required to make the subtree a heap.

◆ heapify()

void Lucene::DisjunctionMaxScorer::heapify ( )
protected

Organize subScorers into a min heap with scorers generating the earliest document on top.

◆ heapRemoveRoot()

void Lucene::DisjunctionMaxScorer::heapRemoveRoot ( )
protected

Remove the root Scorer from subScorers and re-establish it as a heap.

◆ nextDoc()

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

◆ score()

virtual double Lucene::DisjunctionMaxScorer::score ( )
virtual

Determine the current document score. Initially invalid, until next() is called the first time.

Returns
the score of the current generated document

Implements Lucene::Scorer.

◆ scoreAll()

void Lucene::DisjunctionMaxScorer::scoreAll ( int32_t  root,
int32_t  size,
int32_t  doc,
Collection< double >  sum,
Collection< double >  max 
)
protected

Recursively iterate all subScorers that generated last doc computing sum and max.

◆ shared_from_this()

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

Field Documentation

◆ doc

int32_t Lucene::DisjunctionMaxScorer::doc
protected

◆ numScorers

int32_t Lucene::DisjunctionMaxScorer::numScorers
protected

◆ subScorers

Collection<ScorerPtr> Lucene::DisjunctionMaxScorer::subScorers
protected

The scorers for subqueries that have remaining docs, kept as a min heap by number of next doc.

◆ tieBreakerMultiplier

double Lucene::DisjunctionMaxScorer::tieBreakerMultiplier
protected

Multiplier applied to non-maximum-scoring subqueries for a document as they are summed into the result.


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

clucene.sourceforge.net