#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. | |
| Xapian::doccount | get_termfreq_max () const |
| Get an upper bound on the number of documents indexed by this term. | |
| Xapian::doccount | get_termfreq_est () const |
| Get an estimate of the number of documents indexed by this term. | |
| Xapian::weight | get_maxweight () const |
| Return an upper bound on what get_weight() can return. | |
| Xapian::weight | get_weight () const |
| Return the weight contribution for the current position. | |
| Xapian::weight | recalc_maxweight () |
| Recalculate the upper bound on what get_weight() can return. | |
| Xapian::docid | get_docid () const |
| Return the current docid. | |
| Xapian::termcount | get_doclength () const |
| Return the length of current document. | |
| Xapian::termcount | get_wdf () const |
| Return the wdf for the document at the current position. | |
| 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). | |
| PostList * | next (Xapian::weight w_min) |
| Advance the current position to the next document in the postlist. | |
| PostList * | skip_to (Xapian::docid did, Xapian::weight w_min) |
| Skip forward to the specified docid. | |
| bool | at_end () const |
| Return true if the current position is past the last entry in this list. | |
| std::string | get_description () const |
| Return a string description of this object. | |
Private Member Functions | |
| MultiPostList (std::vector< LeafPostList * > &pls, const Xapian::Database &this_db_) | |
Private Attributes | |
| std::vector< LeafPostList * > | postlists |
| const Xapian::Database & | this_db |
| bool | finished |
| Xapian::docid | currdoc |
| Xapian::doccount | multiplier |
Friends | |
| class | Xapian::Database |
Definition at line 28 of file multi_postlist.h.
| MultiPostList::MultiPostList | ( | std::vector< LeafPostList * > & | pls, | |
| const Xapian::Database & | this_db_ | |||
| ) | [private] |
| MultiPostList::~MultiPostList | ( | ) |
| bool MultiPostList::at_end | ( | ) | const [virtual] |
Return true if the current position is past the last entry in this list.
Implements Xapian::PostingIterator::Internal.
Definition at line 195 of file multi_postlist.cc.
References finished.
Referenced by get_docid(), get_doclength(), next(), and skip_to().
| std::string MultiPostList::get_description | ( | ) | const [virtual] |
Return a string description of this object.
Implements Xapian::PostingIterator::Internal.
Definition at line 201 of file multi_postlist.cc.
References postlists.
| Xapian::docid MultiPostList::get_docid | ( | ) | const [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().
| Xapian::termcount MultiPostList::get_doclength | ( | ) | const [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.
| Xapian::weight MultiPostList::get_maxweight | ( | ) | const [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().
| Xapian::doccount MultiPostList::get_termfreq_est | ( | ) | const [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().
| Xapian::doccount MultiPostList::get_termfreq_max | ( | ) | const [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().
| Xapian::doccount MultiPostList::get_termfreq_min | ( | ) | const [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().
| Xapian::termcount MultiPostList::get_wdf | ( | ) | const [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 115 of file multi_postlist.cc.
References currdoc, multiplier, and postlists.
| Xapian::weight MultiPostList::get_weight | ( | ) | const [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().
| PostList * MultiPostList::next | ( | Xapian::weight | w_min | ) | [virtual] |
Advance the current position to the next document in the postlist.
The list starts before the first entry in the list, so next() 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 127 of file multi_postlist.cc.
References Assert, at_end(), currdoc, finished, LOGCALL, LOGLINE, multiplier, postlists, and RETURN.
| PositionList * MultiPostList::open_position_list | ( | ) | const [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 121 of file multi_postlist.cc.
References currdoc, multiplier, and postlists.
| Xapian::weight MultiPostList::recalc_maxweight | ( | ) | [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().
| PostList * MultiPostList::skip_to | ( | Xapian::docid | , | |
| Xapian::weight | w_min | |||
| ) | [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 164 of file multi_postlist.cc.
References Assert, at_end(), currdoc, finished, LOGCALL, multiplier, postlists, and RETURN.
friend class Xapian::Database [friend] |
Definition at line 29 of file multi_postlist.h.
Xapian::docid MultiPostList::currdoc [private] |
Definition at line 36 of file multi_postlist.h.
Referenced by get_docid(), get_doclength(), get_wdf(), next(), open_position_list(), and skip_to().
bool MultiPostList::finished [private] |
Xapian::doccount MultiPostList::multiplier [private] |
Definition at line 38 of file multi_postlist.h.
Referenced by get_doclength(), get_wdf(), MultiPostList(), next(), open_position_list(), and skip_to().
std::vector<LeafPostList *> MultiPostList::postlists [private] |
Definition at line 31 of file multi_postlist.h.
Referenced by get_description(), get_doclength(), get_wdf(), next(), open_position_list(), skip_to(), and ~MultiPostList().
const Xapian::Database& MultiPostList::this_db [private] |