#include <orpostlist.h>
Inheritance diagram for OrPostList:
Public Member Functions | |
Xapian::doccount | get_termfreq_max () const |
Get an upper bound on the number of documents indexed by this term. | |
Xapian::doccount | get_termfreq_min () const |
Get a lower 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::docid | get_docid () const |
Return the current docid. | |
Xapian::weight | get_weight () const |
Return the weight contribution for the current position. | |
Xapian::weight | get_maxweight () const |
Return an upper bound on what get_weight() can return. | |
Xapian::weight | recalc_maxweight () |
Recalculate the upper bound on what get_weight() can return. | |
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. | |
virtual Xapian::doclength | get_doclength () const |
Return the document length of the document the current term comes from. | |
OrPostList (PostList *left_, PostList *right_, MultiMatch *matcher_, Xapian::doccount dbsize_) | |
Private Attributes | |
Xapian::docid | lhead |
Xapian::docid | rhead |
Xapian::weight | lmax |
Xapian::weight | rmax |
Xapian::weight | minmax |
Xapian::doccount | dbsize |
This postlist returns a posting if it is in either of the sub-postlists. The weight for a posting is the sum of the weights of the sub-postings, if both exist, or the sum of the single sub-posting which exists otherwise.
Definition at line 37 of file orpostlist.h.
OrPostList::OrPostList | ( | PostList * | left_, | |
PostList * | right_, | |||
MultiMatch * | matcher_, | |||
Xapian::doccount | dbsize_ | |||
) |
Xapian::doccount OrPostList::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 162 of file orpostlist.cc.
References dbsize, DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_max(), BranchPostList::l, BranchPostList::r, and RETURN.
Xapian::doccount OrPostList::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 169 of file orpostlist.cc.
References DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_min(), BranchPostList::l, BranchPostList::r, and RETURN.
Xapian::doccount OrPostList::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 176 of file orpostlist.cc.
References dbsize, DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_est(), BranchPostList::l, BranchPostList::r, and RETURN.
Xapian::docid OrPostList::get_docid | ( | ) | const [virtual] |
Return the current docid.
Implements Xapian::PostingIterator::Internal.
Definition at line 188 of file orpostlist.cc.
Xapian::weight OrPostList::get_weight | ( | ) | const [virtual] |
Return the weight contribution for the current position.
Implements Xapian::PostingIterator::Internal.
Definition at line 197 of file orpostlist.cc.
References Assert, DEBUGCALL, Xapian::PostingIterator::Internal::get_weight(), BranchPostList::l, lhead, BranchPostList::r, RETURN, and rhead.
Xapian::weight OrPostList::get_maxweight | ( | ) | const [virtual] |
Return an upper bound on what get_weight() can return.
Implements Xapian::PostingIterator::Internal.
Definition at line 208 of file orpostlist.cc.
References DEBUGCALL, lmax, RETURN, and rmax.
Referenced by recalc_maxweight().
Xapian::weight OrPostList::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.
Implements Xapian::PostingIterator::Internal.
Definition at line 215 of file orpostlist.cc.
References DEBUGCALL, get_maxweight(), BranchPostList::l, lmax, minmax, BranchPostList::r, Xapian::PostingIterator::Internal::recalc_maxweight(), RETURN, and rmax.
PostList * OrPostList::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 44 of file orpostlist.cc.
References Assert, Xapian::PostingIterator::Internal::at_end(), dbsize, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_docid(), BranchPostList::l, lhead, lmax, BranchPostList::matcher, minmax, next_handling_prune(), BranchPostList::r, RETURN, rhead, rmax, and skip_to_handling_prune().
PostList * OrPostList::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 105 of file orpostlist.cc.
References Assert, dbsize, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_docid(), BranchPostList::l, lhead, lmax, BranchPostList::matcher, minmax, BranchPostList::r, RETURN, rhead, rmax, and skip_to_handling_prune().
bool OrPostList::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 225 of file orpostlist.cc.
References AssertParanoid, Xapian::PostingIterator::Internal::at_end(), DEBUGCALL, BranchPostList::l, BranchPostList::r, and RETURN.
std::string OrPostList::get_description | ( | ) | const [virtual] |
Return a string description of this object.
Implements Xapian::PostingIterator::Internal.
Definition at line 234 of file orpostlist.cc.
References Xapian::PostingIterator::Internal::get_description(), BranchPostList::l, and BranchPostList::r.
Xapian::doclength OrPostList::get_doclength | ( | ) | const [virtual] |
Return the document length of the document the current term comes from.
This is obtained by asking the subpostlist which contains the current document for the document length. If both subpostlists are valid, the left one is asked.
Implements Xapian::PostingIterator::Internal.
Definition at line 240 of file orpostlist.cc.
References Assert, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_doclength(), BranchPostList::l, lhead, BranchPostList::r, RETURN, and rhead.
Xapian::docid OrPostList::lhead [private] |
Definition at line 39 of file orpostlist.h.
Referenced by get_docid(), get_doclength(), get_weight(), next(), and skip_to().
Xapian::docid OrPostList::rhead [private] |
Definition at line 39 of file orpostlist.h.
Referenced by get_docid(), get_doclength(), get_weight(), next(), and skip_to().
Xapian::weight OrPostList::lmax [private] |
Definition at line 40 of file orpostlist.h.
Referenced by get_maxweight(), next(), recalc_maxweight(), and skip_to().
Xapian::weight OrPostList::rmax [private] |
Definition at line 40 of file orpostlist.h.
Referenced by get_maxweight(), next(), recalc_maxweight(), and skip_to().
Xapian::weight OrPostList::minmax [private] |
Definition at line 40 of file orpostlist.h.
Referenced by next(), recalc_maxweight(), and skip_to().
Xapian::doccount OrPostList::dbsize [private] |
Definition at line 41 of file orpostlist.h.
Referenced by get_termfreq_est(), get_termfreq_max(), next(), and skip_to().