xapian-core
1.4.27
|
#include <multi_postlist.h>
Public Member Functions | |
~MultiPostList () | |
Xapian::doccount | get_termfreq_min () const |
Get a lower bound on the number of documents indexed by this term. More... | |
Xapian::doccount | get_termfreq_max () const |
Get an upper bound on the number of documents indexed by this term. More... | |
Xapian::doccount | get_termfreq_est () const |
Get an estimate of the number of documents indexed by this term. More... | |
double | get_maxweight () const |
Return an upper bound on what get_weight() can return. More... | |
double | get_weight () const |
Return the weight contribution for the current position. More... | |
double | recalc_maxweight () |
Recalculate the upper bound on what get_weight() can return. More... | |
Xapian::docid | get_docid () const |
Return the current docid. More... | |
Xapian::termcount | get_doclength () const |
Return the length of current document. More... | |
Xapian::termcount | get_unique_terms () const |
Return the number of unique terms in the current document. More... | |
Xapian::termcount | get_wdf () const |
Return the wdf for the document at the current position. More... | |
PositionList * | open_position_list () const |
Read the position list for the term in the current document and return a pointer to it (not owned by the PostList). More... | |
PostList * | next (double w_min) |
Advance the current position to the next document in the postlist. More... | |
PostList * | skip_to (Xapian::docid did, double w_min) |
Skip forward to the specified docid. More... | |
bool | at_end () const |
Return true if the current position is past the last entry in this list. More... | |
std::string | get_description () const |
Return a string description of this object. More... | |
Public Member Functions inherited from Xapian::PostingIterator::Internal | |
virtual | ~Internal () |
We have virtual methods and want to be able to delete derived classes using a pointer to the base class, so we need a virtual destructor. More... | |
virtual TermFreqs | get_termfreq_est_using_stats (const Xapian::Weight::Internal &stats) const |
Get an estimate for the termfreq and reltermfreq, given the stats. More... | |
virtual const std::string * | get_sort_key () const |
virtual const std::string * | get_collapse_key () const |
If the collapse key is already known, return it. More... | |
virtual PositionList * | read_position_list () |
Read the position list for the term in the current document and return a pointer to it (owned by the PostList). More... | |
virtual Internal * | check (Xapian::docid did, double w_min, bool &valid) |
Check if the specified docid occurs in this postlist. More... | |
Internal * | next () |
Advance the current position to the next document in the postlist. More... | |
Internal * | skip_to (Xapian::docid did) |
Skip forward to the specified docid. More... | |
virtual Xapian::termcount | count_matching_subqs () const |
Count the number of leaf subqueries which match at the current position. More... | |
virtual void | gather_position_lists (OrPositionList *orposlist) |
Gather PositionList* objects for a subtree. More... | |
Public Member Functions inherited from Xapian::Internal::intrusive_base | |
intrusive_base () | |
Construct with no references. More... | |
Private Member Functions | |
MultiPostList (std::vector< LeafPostList *> &pls, const Xapian::Database &this_db_) | |
Private Attributes | |
std::vector< LeafPostList * > | postlists |
Xapian::Database | this_db |
bool | finished |
Xapian::docid | currdoc |
Xapian::doccount | multiplier |
Friends | |
class | Xapian::Database |
Additional Inherited Members | |
Public Attributes inherited from Xapian::Internal::intrusive_base | |
unsigned | _refs |
Reference count. More... | |
Protected Member Functions inherited from Xapian::PostingIterator::Internal | |
Internal () | |
Only constructable as a base class for derived classes. More... | |
Definition at line 29 of file multi_postlist.h.
|
private |
Definition at line 34 of file multi_postlist.cc.
References multiplier.
MultiPostList::~MultiPostList | ( | ) |
Definition at line 45 of file multi_postlist.cc.
References postlists.
|
virtual |
Return true if the current position is past the last entry in this list.
Implements Xapian::PostingIterator::Internal.
Definition at line 206 of file multi_postlist.cc.
References finished.
Referenced by get_docid(), get_doclength(), get_unique_terms(), next(), and skip_to().
|
virtual |
Return a string description of this object.
Implements Xapian::PostingIterator::Internal.
Definition at line 212 of file multi_postlist.cc.
References postlists.
|
virtual |
Return the current docid.
Implements Xapian::PostingIterator::Internal.
Definition at line 95 of file multi_postlist.cc.
References Assert, at_end(), currdoc, LOGCALL, and RETURN.
Referenced by get_doclength(), and get_unique_terms().
|
virtual |
Return the length of current document.
Implements Xapian::PostingIterator::Internal.
Definition at line 104 of file multi_postlist.cc.
References Assert, AssertEqParanoid, at_end(), currdoc, get_docid(), Xapian::Database::get_doclength(), LOGCALL, multiplier, postlists, RETURN, and this_db.
|
virtual |
Return an upper bound on what get_weight() can return.
Implements Xapian::PostingIterator::Internal.
Definition at line 75 of file multi_postlist.cc.
References get_weight().
|
virtual |
Get an estimate of the number of documents indexed by this term.
It should always be true that: get_termfreq_min() <= get_termfreq_est() <= get_termfreq_max()
Implements Xapian::PostingIterator::Internal.
Definition at line 69 of file multi_postlist.cc.
References get_termfreq_min().
|
virtual |
Get an upper bound on the number of documents indexed by this term.
Implements Xapian::PostingIterator::Internal.
Definition at line 63 of file multi_postlist.cc.
References get_termfreq_min().
|
virtual |
Get a lower bound on the number of documents indexed by this term.
Implements Xapian::PostingIterator::Internal.
Definition at line 55 of file multi_postlist.cc.
References Assert.
Referenced by get_termfreq_est(), and get_termfreq_max().
|
virtual |
Return the number of unique terms in the current document.
Implements Xapian::PostingIterator::Internal.
Definition at line 115 of file multi_postlist.cc.
References Assert, AssertEqParanoid, at_end(), currdoc, get_docid(), Xapian::Database::get_unique_terms(), LOGCALL, multiplier, postlists, RETURN, and this_db.
|
virtual |
Return the wdf for the document at the current position.
The default implementation throws Xapian::UnimplementedError.
Reimplemented from Xapian::PostingIterator::Internal.
Definition at line 126 of file multi_postlist.cc.
References currdoc, multiplier, and postlists.
|
virtual |
Return the weight contribution for the current position.
Implements Xapian::PostingIterator::Internal.
Definition at line 81 of file multi_postlist.cc.
References Assert.
Referenced by get_maxweight(), and recalc_maxweight().
|
virtual |
Advance the current position to the next document in the postlist.
The list starts before the first entry in the list, so next(), skip_to() or check() must be called before any methods which need the context of the current position.
w_min | The minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore). |
Implements Xapian::PostingIterator::Internal.
Definition at line 138 of file multi_postlist.cc.
References Assert, at_end(), currdoc, finished, LOGCALL, LOGLINE, multiplier, postlists, and RETURN.
|
virtual |
Read the position list for the term in the current document and return a pointer to it (not owned by the PostList).
The default implementation throws Xapian::UnimplementedError.
Reimplemented from Xapian::PostingIterator::Internal.
Definition at line 132 of file multi_postlist.cc.
References currdoc, multiplier, and postlists.
|
virtual |
Recalculate the upper bound on what get_weight() can return.
If the tree has pruned, get_maxweight() may use cached values. Calling this method instead forces a full recalculation.
Note that this method may be called after the postlist has reached the end. In this situation, the method should return 0.
Implements Xapian::PostingIterator::Internal.
Definition at line 89 of file multi_postlist.cc.
References get_weight().
|
virtual |
Skip forward to the specified docid.
If the specified docid isn't in the list, position ourselves on the first document after it (or at_end() if no greater docids are present).
w_min | The minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore). |
Implements Xapian::PostingIterator::Internal.
Definition at line 175 of file multi_postlist.cc.
References Assert, at_end(), currdoc, finished, LOGCALL, multiplier, postlists, and RETURN.
|
friend |
Definition at line 30 of file multi_postlist.h.
|
private |
Definition at line 37 of file multi_postlist.h.
Referenced by get_docid(), get_doclength(), get_unique_terms(), get_wdf(), next(), open_position_list(), and skip_to().
|
private |
Definition at line 36 of file multi_postlist.h.
|
private |
Definition at line 39 of file multi_postlist.h.
Referenced by get_doclength(), get_unique_terms(), get_wdf(), MultiPostList(), next(), open_position_list(), and skip_to().
|
private |
Definition at line 32 of file multi_postlist.h.
Referenced by get_description(), get_doclength(), get_unique_terms(), get_wdf(), next(), open_position_list(), skip_to(), and ~MultiPostList().
|
private |
Definition at line 34 of file multi_postlist.h.
Referenced by get_doclength(), and get_unique_terms().