#include <enquire.h>
Inheritance diagram for Xapian::BM25Weight:
Public Member Functions | |
BM25Weight (double k1_, double k2_, double k3_, double b_, double min_normlen_) | |
Construct a BM25 weight. | |
BM25Weight * | clone () const |
Return a new weight object of this type. | |
std::string | name () const |
Name of the weighting scheme. | |
std::string | serialise () const |
Serialise object parameters into a string. | |
BM25Weight * | unserialise (const std::string &s) const |
Create object given string serialisation returned by serialise(). | |
Xapian::weight | get_sumpart (Xapian::termcount wdf, Xapian::doclength len) const |
Get a weight which is part of the sum over terms being performed. | |
Xapian::weight | get_maxpart () const |
Gets the maximum value that get_sumpart() may return. | |
Xapian::weight | get_sumextra (Xapian::doclength len) const |
Get an extra weight for a document to add to the sum calculated over the query terms. | |
Xapian::weight | get_maxextra () const |
Gets the maximum value that get_sumextra() may return. | |
bool | get_sumpart_needs_doclength () const |
return false if the weight object doesn't need doclength |
BM25 weighting options : The BM25 formula is
where
Xapian::BM25Weight::BM25Weight | ( | double | k1_, | |
double | k2_, | |||
double | k3_, | |||
double | b_, | |||
double | min_normlen_ | |||
) | [inline] |
Construct a BM25 weight.
k1 | governs the importance of within document frequency. Must be >= 0. 0 means ignore wdf. Default is 1. | |
k2 | compensation factor for the high wdf values in large documents. Must be >= 0. 0 means no compensation. Default is 0. | |
k3 | governs the importance of within query frequency. Must be >= 0. 0 means ignore wqf. Default is 1. | |
b | Relative importance of within document frequency and document length. Must be >= 0 and <= 1. Default is 0.5. | |
min_normlen | specifies a cutoff on the minimum value that can be used for a normalised document length - smaller values will be forced up to this cutoff. This prevents very small documents getting a huge bonus weight. Default is 0.5. |
BM25Weight* Xapian::BM25Weight::clone | ( | ) | const [virtual] |
Return a new weight object of this type.
A subclass called FooWeight taking parameters param1 and param2 should implement this as:
virtual FooWeight * clone() const { return new FooWeight(param1, param2); }
Implements Xapian::Weight.
std::string Xapian::BM25Weight::name | ( | ) | const [virtual] |
Name of the weighting scheme.
If the subclass is called FooWeight, this should return "Foo".
Implements Xapian::Weight.
std::string Xapian::BM25Weight::serialise | ( | ) | const [virtual] |
BM25Weight* Xapian::BM25Weight::unserialise | ( | const std::string & | s | ) | const [virtual] |
Xapian::weight Xapian::BM25Weight::get_sumpart | ( | Xapian::termcount | wdf, | |
Xapian::doclength | len | |||
) | const [virtual] |
Get a weight which is part of the sum over terms being performed.
This returns a weight for a given term and document. These weights are summed to give a total weight for the document.
wdf | the within document frequency of the term. | |
len | the (unnormalised) document length. |
Implements Xapian::Weight.
Xapian::weight Xapian::BM25Weight::get_maxpart | ( | ) | const [virtual] |
Gets the maximum value that get_sumpart() may return.
This is used in optimising searches, by having the postlist tree decay appropriately when parts of it can have limited, or no, further effect.
Implements Xapian::Weight.
Xapian::weight Xapian::BM25Weight::get_sumextra | ( | Xapian::doclength | len | ) | const [virtual] |
Get an extra weight for a document to add to the sum calculated over the query terms.
This returns a weight for a given document, and is used by some weighting schemes to account for influence such as document length.
len | the (unnormalised) document length. |
Implements Xapian::Weight.
Xapian::weight Xapian::BM25Weight::get_maxextra | ( | ) | const [virtual] |
Gets the maximum value that get_sumextra() may return.
This is used in optimising searches.
Implements Xapian::Weight.
bool Xapian::BM25Weight::get_sumpart_needs_doclength | ( | ) | const [virtual] |