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

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions
Lucene::Weight Class Referenceabstract

Calculate query weights and build query scorers. More...

`#include <Weight.h>`

Inheritance diagram for Lucene::Weight:

## Public Member Functions

virtual | ~Weight ()
virtual String | getClassName ()
boost::shared_ptr< Weight > | shared_from_this ()
virtual ExplanationPtr | explain (const IndexReaderPtr &reader, int32_t doc)=0
| An explanation of the score computation for the named document.
virtual QueryPtr | getQuery ()=0
| The query that this concerns.
virtual double | getValue ()=0
| The weight for this query.
virtual void | normalize (double norm)=0
| Assigns the query normalization factor to this.
virtual ScorerPtr | scorer (const IndexReaderPtr &reader, bool scoreDocsInOrder, bool topScorer)=0
| Returns a `Scorer` which scores documents in/out-of order according to scoreDocsInOrder.
virtual double | sumOfSquaredWeights ()=0
| The sum of squared weights of contained query clauses.
virtual bool | scoresDocsOutOfOrder ()
| Returns true if this implementation scores docs only out of order. This method is used in conjunction with `Collector`'s `acceptsDocsOutOfOrder` and `scorer(IndexReaderPtr, bool, bool)` to create a matching `Scorer` instance for a given `Collector`, or vice versa.
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 ()

## Additional Inherited Members

Protected Member Functions inherited from Lucene::LuceneObject
| LuceneObject ()
Protected Attributes inherited from Lucene::LuceneSync
SynchronizePtr | objectLock
LuceneSignalPtr | objectSignal

## Detailed Description

Calculate query weights and build query scorers.

The purpose of `Weight` is to ensure searching does not modify a `Query`, so that a `Query` instance can be reused. `Searcher` dependent state of the query should reside in the `Weight`. `IndexReader` dependent state should reside in the `Scorer`.

Weight is used in the following way:

1. A Weight is constructed by a top-level query, given a Searcher (`Query#createWeight(Searcher)`).
2. The `sumOfSquaredWeights()` method is called on the Weight to compute the query normalization factor `Similarity#queryNorm(float)` of the query clauses contained in the query.
3. The query normalization factor is passed to `normalize(float)`. At this point the weighting is complete.
4. A Scorer is constructed by `scorer(IndexReaderPtr, bool, bool)`.

## Constructor & Destructor Documentation

## ◆ ~Weight()

virtual Lucene::Weight::~Weight | ( |  | ) |

virtual

## Member Function Documentation

## ◆ _getClassName()

String Lucene::Weight::_getClassName | ( |  | ) |

inline static

## ◆ explain()

virtual ExplanationPtr Lucene::Weight::explain | ( | const IndexReaderPtr & | reader,
|  | int32_t | doc )

pure virtual

An explanation of the score computation for the named document.

Parameters

  reader | sub-reader containing the give doc
  doc |

Returns
  an Explanation for the score

Implemented in Lucene::SpanWeight.

## ◆ getClassName()

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

inline virtual

Reimplemented in Lucene::PayloadNearSpanWeight, and Lucene::SpanWeight.

## ◆ getQuery()

virtual QueryPtr Lucene::Weight::getQuery | ( |  | ) |

pure virtual

The query that this concerns.

Implemented in Lucene::SpanWeight.

## ◆ getValue()

virtual double Lucene::Weight::getValue | ( |  | ) |

pure virtual

The weight for this query.

Implemented in Lucene::SpanWeight.

## ◆ normalize()

virtual void Lucene::Weight::normalize | ( | double | norm | ) |

pure virtual

Assigns the query normalization factor to this.

Implemented in Lucene::SpanWeight.

## ◆ scorer()

virtual ScorerPtr Lucene::Weight::scorer | ( | const IndexReaderPtr & | reader,
|  | bool | scoreDocsInOrder,
|  | bool | topScorer )

pure virtual

Returns a `Scorer` which scores documents in/out-of order according to scoreDocsInOrder.

NOTE: even if scoreDocsInOrder is false, it is recommended to check whether the returned Scorer indeed scores documents out of order (ie., call `scoresDocsOutOfOrder()`), as some Scorer implementations will always return documents in-order.

NOTE: null can be returned if no documents will be scored by this query.

Parameters

  reader | The `IndexReader` for which to return the `Scorer`.

  scoreDocsInOrder

  Specifies whether in-order scoring of documents is required. Note that if set to false (i.e., out-of-order scoring is required), this method can return whatever scoring mode it supports, as every in-order scorer is also an out-of-order one. However, an out-of-order scorer may not support `Scorer#nextDoc()` and/or `Scorer#advance(int)`, therefore it is recommended to request an in-order scorer if use of these methods is required.

  topScorer | If true, `Scorer#score(CollectorPtr)` will be called; if false, `Scorer#nextDoc()` and/or `Scorer#advance(int)` will be called.

Returns
  a `Scorer` which scores documents in/out-of order.

Implemented in Lucene::PayloadNearSpanWeight, and Lucene::SpanWeight.

## ◆ scoresDocsOutOfOrder()

virtual bool Lucene::Weight::scoresDocsOutOfOrder | ( |  | ) |

virtual

Returns true if this implementation scores docs only out of order. This method is used in conjunction with `Collector`'s `acceptsDocsOutOfOrder` and `scorer(IndexReaderPtr, bool, bool)` to create a matching `Scorer` instance for a given `Collector`, or vice versa.

NOTE: the default implementation returns false, ie. the Scorer scores documents in-order.

## ◆ shared_from_this()

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

inline

## ◆ sumOfSquaredWeights()

virtual double Lucene::Weight::sumOfSquaredWeights | ( |  | ) |

pure virtual

The sum of squared weights of contained query clauses.

Implemented in Lucene::SpanWeight.

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

- Weight.h

clucene.sourceforge.net