#include <andmaybepostlist.h>


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. | |
| TermFreqs | get_termfreq_est_using_stats (const Xapian::Weight::Internal &stats) const |
| Get an estimate for the termfreq and reltermfreq, given the stats. | |
| 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::termcount | 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. | |
| PostList * | sync_rhs (Xapian::weight w_min) |
| Synchronise the RHS to the LHS after construction. | |
| Xapian::termcount | get_wdf () const |
| get_wdf() for ANDMAYBE postlists returns the sum of the wdfs of the sub postlists which are at the current document - this is desirable when the ANDMAYBE is part of a synonym. | |
| Xapian::termcount | count_matching_subqs () const |
| Count the number of leaf subqueries which match at the current position. | |
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 53 of file andmaybepostlist.h.
| AndMaybePostList::AndMaybePostList | ( | PostList * | left_, | |
| PostList * | right_, | |||
| MultiMatch * | matcher_, | |||
| Xapian::doccount | dbsize_ | |||
| ) | [inline] |
Definition at line 85 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 96 of file andmaybepostlist.h.
References Xapian::PostingIterator::Internal::get_maxweight(), BranchPostList::l, lmax, BranchPostList::r, and rmax.
| 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 185 of file andmaybepostlist.cc.
| Xapian::termcount AndMaybePostList::count_matching_subqs | ( | ) | const [virtual] |
Count the number of leaf subqueries which match at the current position.
Reimplemented from Xapian::PostingIterator::Internal.
Definition at line 216 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::count_matching_subqs(), BranchPostList::l, lhead, LOGCALL, BranchPostList::r, RETURN, and rhead.
| std::string AndMaybePostList::get_description | ( | ) | const [virtual] |
Return a string description of this object.
Implements Xapian::PostingIterator::Internal.
Definition at line 192 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_description(), BranchPostList::l, and BranchPostList::r.
| Xapian::docid AndMaybePostList::get_docid | ( | ) | const [virtual] |
Return the current docid.
Implements Xapian::PostingIterator::Internal.
Definition at line 150 of file andmaybepostlist.cc.
| Xapian::termcount AndMaybePostList::get_doclength | ( | ) | const [virtual] |
Return the document length of the document the current term comes from.
Implements Xapian::PostingIterator::Internal.
Definition at line 199 of file andmaybepostlist.cc.
References Assert, AssertEq, Xapian::PostingIterator::Internal::get_doclength(), BranchPostList::l, lhead, LOGCALL, 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 169 of file andmaybepostlist.cc.
References lmax, LOGCALL, RETURN, and rmax.
Referenced by recalc_maxweight().
| 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 133 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_termfreq_est(), BranchPostList::l, LOGCALL, and RETURN.
| TermFreqs AndMaybePostList::get_termfreq_est_using_stats | ( | const Xapian::Weight::Internal & | stats | ) | const [virtual] |
Get an estimate for the termfreq and reltermfreq, given the stats.
The frequencies may be for a combination of databases, or for just the relevant documents, so the results need not lie in the bounds given by get_termfreq_min() and get_termfreq_max().
Reimplemented from Xapian::PostingIterator::Internal.
Definition at line 141 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_termfreq_est_using_stats(), BranchPostList::l, LOGCALL, and RETURN.
| 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 117 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_termfreq_max(), BranchPostList::l, LOGCALL, 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 125 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_termfreq_min(), BranchPostList::l, LOGCALL, and RETURN.
| Xapian::termcount AndMaybePostList::get_wdf | ( | ) | const [virtual] |
get_wdf() for ANDMAYBE postlists returns the sum of the wdfs of the sub postlists which are at the current document - this is desirable when the ANDMAYBE is part of a synonym.
Reimplemented from Xapian::PostingIterator::Internal.
Definition at line 208 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::get_wdf(), BranchPostList::l, lhead, LOGCALL, BranchPostList::r, RETURN, and rhead.
| Xapian::weight AndMaybePostList::get_weight | ( | ) | const [virtual] |
Return the weight contribution for the current position.
Implements Xapian::PostingIterator::Internal.
Definition at line 159 of file andmaybepostlist.cc.
References Assert, Xapian::PostingIterator::Internal::get_weight(), BranchPostList::l, lhead, LOGCALL, BranchPostList::r, RETURN, and rhead.
| 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 80 of file andmaybepostlist.cc.
References dbsize, BranchPostList::l, lhead, lmax, LOGCALL, LOGLINE, BranchPostList::matcher, Xapian::PostingIterator::Internal::next(), process_next_or_skip_to(), BranchPostList::r, RETURN, rhead, rmax, and skip_to_handling_prune().
| PostList * AndMaybePostList::process_next_or_skip_to | ( | Xapian::weight | w_min, | |
| PostList * | ret | |||
| ) | [private] |
Definition at line 32 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::at_end(), check_handling_prune(), Xapian::PostingIterator::Internal::get_docid(), BranchPostList::handle_prune(), BranchPostList::l, lhead, lmax, LOGCALL, BranchPostList::matcher, BranchPostList::r, RETURN, and rhead.
| 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.
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 176 of file andmaybepostlist.cc.
References get_maxweight(), BranchPostList::l, lmax, LOGCALL, BranchPostList::r, Xapian::PostingIterator::Internal::recalc_maxweight(), RETURN, and rmax.
| 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 96 of file andmaybepostlist.cc.
References dbsize, BranchPostList::l, lhead, lmax, LOGCALL, LOGLINE, BranchPostList::matcher, process_next_or_skip_to(), BranchPostList::r, RETURN, rhead, rmax, Xapian::PostingIterator::Internal::skip_to(), and skip_to_handling_prune().
| PostList * AndMaybePostList::sync_rhs | ( | Xapian::weight | w_min | ) |
Synchronise the RHS to the LHS after construction.
Used after constructing from a decomposing OrPostList
Definition at line 61 of file andmaybepostlist.cc.
References Xapian::PostingIterator::Internal::at_end(), check_handling_prune(), Xapian::PostingIterator::Internal::get_docid(), BranchPostList::l, lhead, lmax, LOGCALL, BranchPostList::matcher, BranchPostList::r, RETURN, and rhead.
Referenced by OrPostList::check(), OrPostList::next(), and OrPostList::skip_to().
Xapian::doccount AndMaybePostList::dbsize [private] |
Xapian::docid AndMaybePostList::lhead [private] |
Definition at line 56 of file andmaybepostlist.h.
Referenced by at_end(), count_matching_subqs(), get_docid(), get_doclength(), get_wdf(), get_weight(), next(), process_next_or_skip_to(), skip_to(), and sync_rhs().
Xapian::weight AndMaybePostList::lmax [private] |
Definition at line 57 of file andmaybepostlist.h.
Referenced by AndMaybePostList(), get_maxweight(), next(), process_next_or_skip_to(), recalc_maxweight(), skip_to(), and sync_rhs().
Xapian::docid AndMaybePostList::rhead [private] |
Definition at line 56 of file andmaybepostlist.h.
Referenced by count_matching_subqs(), get_doclength(), get_wdf(), get_weight(), next(), process_next_or_skip_to(), skip_to(), and sync_rhs().
Xapian::weight AndMaybePostList::rmax [private] |
Definition at line 57 of file andmaybepostlist.h.
Referenced by AndMaybePostList(), get_maxweight(), next(), recalc_maxweight(), and skip_to().