#include <andmaybepostlist.h>
Inheritance diagram for AndMaybePostList:
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. | |
AndMaybePostList (PostList *left_, PostList *right_, MultiMatch *matcher_, Xapian::doccount dbsize_) | |
AndMaybePostList (PostList *left_, PostList *right_, MultiMatch *matcher_, Xapian::doccount dbsize_, Xapian::docid lhead_, Xapian::docid rhead_) | |
Constructor for use by decomposing OrPostList. | |
Private Member Functions | |
PostList * | process_next_or_skip_to (Xapian::weight w_min, PostList *ret) |
Private Attributes | |
Xapian::doccount | dbsize |
Xapian::docid | lhead |
Xapian::docid | rhead |
Xapian::weight | lmax |
Xapian::weight | rmax |
This postlist returns a posting if and only if it is in the left sub-postlist.
If the posting does not occur in the right postlist, the weight for the posting is simply that in the left postlist. If the posting occurs in both postlists, the weight for the posting is the sum of the weights in the sub-postlists.
This type of postlist is useful for specifying a set of terms which must appear in the query result: these terms can be specified as the left hand argument, with the rest of the query being on the right hand side, and having the effect of modifying the weights.
The postlist is also used as a "decay product" of other postlist types during the match process: when a postlist can no longer cause a document to enter the mset on its own, but can influence relative rankings, it may be combined using one of these.
Definition at line 54 of file andmaybepostlist.h.
AndMaybePostList::AndMaybePostList | ( | PostList * | left_, | |
PostList * | right_, | |||
MultiMatch * | matcher_, | |||
Xapian::doccount | dbsize_ | |||
) | [inline] |
Definition at line 83 of file andmaybepostlist.h.
AndMaybePostList::AndMaybePostList | ( | PostList * | left_, | |
PostList * | right_, | |||
MultiMatch * | matcher_, | |||
Xapian::doccount | dbsize_, | |||
Xapian::docid | lhead_, | |||
Xapian::docid | rhead_ | |||
) | [inline] |
Constructor for use by decomposing OrPostList.
Definition at line 94 of file andmaybepostlist.h.
References Xapian::PostingIterator::Internal::get_maxweight(), BranchPostList::l, lmax, BranchPostList::r, and rmax.
PostList * AndMaybePostList::process_next_or_skip_to | ( | Xapian::weight | w_min, | |
PostList * | ret | |||
) | [private] |
Definition at line 31 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::at_end(), DEBUGCALL, Xapian::PostingIterator::Internal::get_docid(), BranchPostList::handle_prune(), BranchPostList::l, lhead, lmax, BranchPostList::matcher, BranchPostList::r, RETURN, rhead, and skip_to_handling_prune().
Xapian::doccount AndMaybePostList::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 92 of file andmaybepostlist.cc.
References DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_max(), BranchPostList::l, and RETURN.
Xapian::doccount AndMaybePostList::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 100 of file andmaybepostlist.cc.
References DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_min(), BranchPostList::l, and RETURN.
Xapian::doccount AndMaybePostList::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 108 of file andmaybepostlist.cc.
References DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_est(), BranchPostList::l, and RETURN.
Xapian::docid AndMaybePostList::get_docid | ( | ) | const [virtual] |
Return the current docid.
Implements Xapian::PostingIterator::Internal.
Definition at line 116 of file andmaybepostlist.cc.
Xapian::weight AndMaybePostList::get_weight | ( | ) | const [virtual] |
Return the weight contribution for the current position.
Implements Xapian::PostingIterator::Internal.
Definition at line 125 of file andmaybepostlist.cc.
References Assert, DEBUGCALL, Xapian::PostingIterator::Internal::get_weight(), BranchPostList::l, lhead, BranchPostList::r, RETURN, and rhead.
Xapian::weight AndMaybePostList::get_maxweight | ( | ) | const [virtual] |
Return an upper bound on what get_weight() can return.
Implements Xapian::PostingIterator::Internal.
Definition at line 135 of file andmaybepostlist.cc.
References DEBUGCALL, lmax, RETURN, and rmax.
Referenced by recalc_maxweight().
Xapian::weight AndMaybePostList::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 142 of file andmaybepostlist.cc.
References DEBUGCALL, get_maxweight(), BranchPostList::l, lmax, BranchPostList::r, Xapian::PostingIterator::Internal::recalc_maxweight(), RETURN, and rmax.
PostList * AndMaybePostList::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 55 of file andmaybepostlist.cc.
References dbsize, DEBUGCALL, DEBUGLINE, BranchPostList::l, lhead, lmax, BranchPostList::matcher, Xapian::PostingIterator::Internal::next(), process_next_or_skip_to(), BranchPostList::r, RETURN, rhead, rmax, and skip_to_handling_prune().
PostList * AndMaybePostList::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 71 of file andmaybepostlist.cc.
References dbsize, DEBUGCALL, DEBUGLINE, BranchPostList::l, lhead, lmax, BranchPostList::matcher, process_next_or_skip_to(), BranchPostList::r, RETURN, rhead, rmax, Xapian::PostingIterator::Internal::skip_to(), and skip_to_handling_prune().
bool AndMaybePostList::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 151 of file andmaybepostlist.cc.
std::string AndMaybePostList::get_description | ( | ) | const [virtual] |
Return a string description of this object.
Implements Xapian::PostingIterator::Internal.
Definition at line 158 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_description(), BranchPostList::l, and BranchPostList::r.
Xapian::doclength AndMaybePostList::get_doclength | ( | ) | const [virtual] |
Return the document length of the document the current term comes from.
Implements Xapian::PostingIterator::Internal.
Definition at line 165 of file andmaybepostlist.cc.
References Assert, AssertEqDouble, DEBUGCALL, Xapian::PostingIterator::Internal::get_doclength(), BranchPostList::l, lhead, BranchPostList::r, RETURN, and rhead.
Xapian::doccount AndMaybePostList::dbsize [private] |
Xapian::docid AndMaybePostList::lhead [private] |
Definition at line 57 of file andmaybepostlist.h.
Referenced by at_end(), get_docid(), get_doclength(), get_weight(), next(), process_next_or_skip_to(), and skip_to().
Xapian::docid AndMaybePostList::rhead [private] |
Definition at line 57 of file andmaybepostlist.h.
Referenced by get_docid(), get_doclength(), get_weight(), next(), process_next_or_skip_to(), and skip_to().
Xapian::weight AndMaybePostList::lmax [private] |
Definition at line 58 of file andmaybepostlist.h.
Referenced by AndMaybePostList(), get_maxweight(), next(), process_next_or_skip_to(), recalc_maxweight(), and skip_to().
Xapian::weight AndMaybePostList::rmax [private] |
Definition at line 58 of file andmaybepostlist.h.
Referenced by AndMaybePostList(), get_maxweight(), next(), recalc_maxweight(), and skip_to().