xapian-core  2.0.0
Public Member Functions | Public Attributes | List of all members
CheckStatsWeight Class Reference
+ Inheritance diagram for CheckStatsWeight:
+ Collaboration diagram for CheckStatsWeight:

Public Member Functions

 CheckStatsWeight (const Xapian::Database &db_, const string &term1_, const string &term2_, Xapian::termcount &sum_, Xapian::termcount &sum_squares_)
 
 CheckStatsWeight (const Xapian::Database &db_, const string &term_, Xapian::termcount &sum_, Xapian::termcount &sum_squares_)
 
void init (double factor_) override
 Allow the subclass to perform any initialisation it needs to. More...
 
Weightclone () const override
 Clone this object. More...
 
double get_sumpart (Xapian::termcount wdf, Xapian::termcount doclen, Xapian::termcount uniqueterms, Xapian::termcount wdfdocmax) const override
 Calculate the weight contribution for this object's term to a document. More...
 
double get_maxpart () const override
 Return an upper bound on what get_sumpart() can return for any document. More...
 
double get_sumextra (Xapian::termcount doclen, Xapian::termcount, Xapian::termcount) const override
 Calculate the term-independent weight component for a document. More...
 
double get_maxextra () const override
 Return an upper bound on what get_sumextra() can return for any document. More...
 
- Public Member Functions inherited from Xapian::Weight
 Weight ()
 Default constructor, needed by subclass constructors. More...
 
virtual ~Weight ()
 Virtual destructor, because we have virtual methods. More...
 
virtual std::string name () const
 Return the name of this weighting scheme, e.g. More...
 
virtual std::string serialise () const
 Return this object's parameters serialised as a single string. More...
 
virtual Weightunserialise (const std::string &serialised) const
 Unserialise parameters. More...
 
virtual Weightcreate_from_parameters (const char *params) const
 Create from a human-readable parameter string. More...
 

Public Attributes

double factor = -1.0
 
Xapian::Database db
 
string term1
 
string term2
 
Xapian::termcountsum
 
Xapian::termcountsum_squares
 
Xapian::termcount len_upper = 0
 
Xapian::termcount len_lower = Xapian::termcount(-1)
 
Xapian::termcount uniqueterms_upper = 0
 
Xapian::termcount uniqueterms_lower = Xapian::termcount(-1)
 
Xapian::termcount wdf_upper = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from Xapian::Weight
static const Weightcreate (const std::string &scheme, const Registry &reg=Registry())
 Return the appropriate weighting scheme object. More...
 
- Protected Types inherited from Xapian::Weight
enum  stat_flags {
  COLLECTION_SIZE = 0 , RSET_SIZE = 0 , AVERAGE_LENGTH = 4 , TERMFREQ = 1 ,
  RELTERMFREQ = 1 , QUERY_LENGTH = 0 , WQF = 0 , WDF = 2 ,
  DOC_LENGTH = 8 , DOC_LENGTH_MIN = 16 , DOC_LENGTH_MAX = 32 , WDF_MAX = 64 ,
  COLLECTION_FREQ = 1 , UNIQUE_TERMS = 128 , TOTAL_LENGTH = 256 , WDF_DOC_MAX = 512 ,
  UNIQUE_TERMS_MIN = 1024 , UNIQUE_TERMS_MAX = 2048 , DB_DOC_LENGTH_MIN = 4096 , DB_DOC_LENGTH_MAX = 8192 ,
  DB_UNIQUE_TERMS_MIN = 16384 , DB_UNIQUE_TERMS_MAX = 32768 , DB_WDF_MAX = 65536 , IS_BOOLWEIGHT_ = static_cast<int>(0x80000000)
}
 Stats which the weighting scheme can use (see need_stat()). More...
 
- Protected Member Functions inherited from Xapian::Weight
void need_stat (stat_flags flag)
 Tell Xapian that your subclass will want a particular statistic. More...
 
 Weight (const Weight &)
 Don't allow copying. More...
 
Xapian::doccount get_collection_size () const
 The number of documents in the collection. More...
 
Xapian::doccount get_rset_size () const
 The number of documents marked as relevant. More...
 
Xapian::doclength get_average_length () const
 The average length of a document in the collection. More...
 
Xapian::doccount get_termfreq () const
 The number of documents which this term indexes. More...
 
Xapian::doccount get_reltermfreq () const
 The number of relevant documents which this term indexes. More...
 
Xapian::termcount get_collection_freq () const
 The collection frequency of the term. More...
 
Xapian::termcount get_query_length () const
 The length of the query. More...
 
Xapian::termcount get_wqf () const
 The within-query-frequency of this term. More...
 
Xapian::termcount get_doclength_upper_bound () const
 An upper bound on the maximum length of any document in the shard. More...
 
Xapian::termcount get_doclength_lower_bound () const
 A lower bound on the minimum length of any document in the shard. More...
 
Xapian::termcount get_wdf_upper_bound () const
 An upper bound on the wdf of this term in the shard. More...
 
Xapian::totallength get_total_length () const
 Total length of all documents in the collection. More...
 
Xapian::termcount get_unique_terms_upper_bound () const
 A lower bound on the number of unique terms in any document in the shard. More...
 
Xapian::termcount get_unique_terms_lower_bound () const
 An upper bound on the number of unique terms in any document in the shard. More...
 
Xapian::termcount get_db_doclength_upper_bound () const
 An upper bound on the maximum length of any document in the database. More...
 
Xapian::termcount get_db_doclength_lower_bound () const
 A lower bound on the minimum length of any document in the database. More...
 
Xapian::termcount get_db_unique_terms_upper_bound () const
 A lower bound on the number of unique terms in any document in the database. More...
 
Xapian::termcount get_db_unique_terms_lower_bound () const
 An upper bound on the number of unique terms in any document in the database. More...
 
Xapian::termcount get_db_wdf_upper_bound () const
 An upper bound on the wdf of this term in the database. More...
 

Detailed Description

Definition at line 1217 of file api_weight.cc.

Constructor & Destructor Documentation

◆ CheckStatsWeight() [1/2]

CheckStatsWeight::CheckStatsWeight ( const Xapian::Database db_,
const string &  term1_,
const string &  term2_,
Xapian::termcount sum_,
Xapian::termcount sum_squares_ 
)
inline

Definition at line 1240 of file api_weight.cc.

◆ CheckStatsWeight() [2/2]

CheckStatsWeight::CheckStatsWeight ( const Xapian::Database db_,
const string &  term_,
Xapian::termcount sum_,
Xapian::termcount sum_squares_ 
)
inline

Definition at line 1272 of file api_weight.cc.

Member Function Documentation

◆ clone()

Weight* CheckStatsWeight::clone ( ) const
inlineoverridevirtual

Clone this object.

This method allocates and returns a copy of the object it is called on.

If your subclass is called FooWeight and has parameters a and b, then you would implement FooWeight::clone() like so:

FooWeight * FooWeight::clone() const { return new FooWeight(a, b); }

Note that the returned object will be deallocated by Xapian after use with "delete". If you want to handle the deletion in a special way (for example when wrapping the Xapian API for use from another language) then you can define a static operator delete method in your subclass as shown here: https://trac.xapian.org/ticket/554#comment:1

Implements Xapian::Weight.

Definition at line 1282 of file api_weight.cc.

◆ get_maxextra()

double CheckStatsWeight::get_maxextra ( ) const
inlineoverridevirtual

Return an upper bound on what get_sumextra() can return for any document.

The default implementation always returns 0 (in Xapian < 2.0.0 this was a pure virtual method).

This information is used by the matcher to perform various optimisations, so strive to make the bound as tight as possible.

Reimplemented from Xapian::Weight.

Definition at line 1415 of file api_weight.cc.

◆ get_maxpart()

double CheckStatsWeight::get_maxpart ( ) const
inlineoverridevirtual

Return an upper bound on what get_sumpart() can return for any document.

This information is used by the matcher to perform various optimisations, so strive to make the bound as tight as possible.

Implements Xapian::Weight.

Definition at line 1398 of file api_weight.cc.

◆ get_sumextra()

double CheckStatsWeight::get_sumextra ( Xapian::termcount  doclen,
Xapian::termcount  uniqterms,
Xapian::termcount  wdfdocmax 
) const
inlineoverridevirtual

Calculate the term-independent weight component for a document.

The default implementation always returns 0 (in Xapian < 2.0.0 this was a pure virtual method).

The parameter gives information about the document which may be used in the calculations:

Parameters
doclenThe document's length (unnormalised). You need to call need_stat(DOC_LENGTH) if you use this value.
uniqtermsNumber of unique terms in the document. You need to call need_stat(UNIQUE_TERMS) if you use this value.
wdfdocmaxMaximum wdf value in the document. You need to call need_stat(WDF_DOC_MAX) if you use this value.
Since
The wdfdocmax parameter was added in Xapian 2.0.0.

Reimplemented from Xapian::Weight.

Definition at line 1409 of file api_weight.cc.

◆ get_sumpart()

double CheckStatsWeight::get_sumpart ( Xapian::termcount  wdf,
Xapian::termcount  doclen,
Xapian::termcount  uniqterms,
Xapian::termcount  wdfdocmax 
) const
inlineoverridevirtual

Calculate the weight contribution for this object's term to a document.

The parameters give information about the document which may be used in the calculations:

Parameters
wdfThe within document frequency of the term in the document. You need to call need_stat(WDF) if you use this value.
doclenThe document's length (unnormalised). You need to call need_stat(DOC_LENGTH) if you use this value.
uniqtermsNumber of unique terms in the document. You need to call need_stat(UNIQUE_TERMS) if you use this value.
wdfdocmaxMaximum wdf value in the document. You need to call need_stat(WDF_DOC_MAX) if you use this value.

You can rely of wdf <= doclen if you call both need_stat(WDF) and need_stat(DOC_LENGTH) - this is trivially true for terms, but Xapian also ensure it's true for OP_SYNONYM, where the wdf is approximated.

Since
The wdfdocmax parameter was added in Xapian 2.0.0.

Implements Xapian::Weight.

Definition at line 1297 of file api_weight.cc.

References Xapian::Database::allterms_begin(), Xapian::Database::allterms_end(), Xapian::Database::get_avlength(), Xapian::Database::get_collection_freq(), Xapian::Database::get_doccount(), Xapian::Database::get_doclength_lower_bound(), Xapian::Database::get_doclength_upper_bound(), Xapian::Database::get_termfreq(), Xapian::Database::get_total_length(), Xapian::Database::get_unique_terms_lower_bound(), Xapian::Database::get_unique_terms_upper_bound(), Xapian::Database::size(), TEST_EQUAL, TEST_REL, and tout.

◆ init()

void CheckStatsWeight::init ( double  factor)
inlineoverridevirtual

Allow the subclass to perform any initialisation it needs to.

Parameters
factorAny scaling factor (e.g. from OP_SCALE_WEIGHT). If the Weight object is for the term-independent weight supplied by get_sumextra()/get_maxextra(), then init(0.0) is called (starting from Xapian 1.2.11 and 1.3.1 - earlier versions failed to call init() for such Weight objects).

Implements Xapian::Weight.

Definition at line 1278 of file api_weight.cc.

Member Data Documentation

◆ db

Xapian::Database CheckStatsWeight::db

Definition at line 1221 of file api_weight.cc.

◆ factor

double CheckStatsWeight::factor = -1.0

Definition at line 1219 of file api_weight.cc.

◆ len_lower

Xapian::termcount CheckStatsWeight::len_lower = Xapian::termcount(-1)
mutable

Definition at line 1235 of file api_weight.cc.

◆ len_upper

Xapian::termcount CheckStatsWeight::len_upper = 0
mutable

Definition at line 1234 of file api_weight.cc.

◆ sum

Xapian::termcount& CheckStatsWeight::sum

Definition at line 1231 of file api_weight.cc.

◆ sum_squares

Xapian::termcount& CheckStatsWeight::sum_squares

Definition at line 1232 of file api_weight.cc.

◆ term1

string CheckStatsWeight::term1

Definition at line 1223 of file api_weight.cc.

◆ term2

string CheckStatsWeight::term2
mutable

Definition at line 1229 of file api_weight.cc.

◆ uniqueterms_lower

Xapian::termcount CheckStatsWeight::uniqueterms_lower = Xapian::termcount(-1)
mutable

Definition at line 1237 of file api_weight.cc.

◆ uniqueterms_upper

Xapian::termcount CheckStatsWeight::uniqueterms_upper = 0
mutable

Definition at line 1236 of file api_weight.cc.

◆ wdf_upper

Xapian::termcount CheckStatsWeight::wdf_upper = 0
mutable

Definition at line 1238 of file api_weight.cc.


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