41 std::vector<PostList *>::const_iterator i;
59 if (
unsigned(current) >=
plists.size())
break;
91 vector<PostList *>::const_iterator i;
93 total += (*i)->get_termfreq_max();
104 vector<PostList *>::const_iterator i;
106 total += (*i)->get_termfreq_min();
117 vector<PostList *>::const_iterator i;
119 total += (*i)->get_termfreq_est();
137 LOGCALL(MATCH,
double,
"MergePostList::get_weight", NO_ARGS);
145 LOGCALL(MATCH,
const string *,
"MergePostList::get_sort_key", NO_ARGS);
153 LOGCALL(MATCH,
const string *,
"MergePostList::get_collapse_key", NO_ARGS);
161 LOGCALL(MATCH,
double,
"MergePostList::get_maxweight", NO_ARGS);
168 LOGCALL(MATCH,
double,
"MergePostList::recalc_maxweight", NO_ARGS);
170 vector<PostList *>::iterator i;
172 double w = (*i)->recalc_maxweight();
181 LOGCALL(MATCH,
bool,
"MergePostList::at_end", NO_ARGS);
189 string desc =
"( Merge ";
190 vector<PostList *>::const_iterator i;
192 desc += (*i)->get_description() +
" ";
Abstract base class for postlists.
string get_description() const
Return a string description of this object.
class for performing a match
InvalidOperationError indicates the API was used in an invalid way.
A PostList which contains no entries.
#define LOGCALL_DTOR(CATEGORY, CLASS)
double recalc_maxweight()
Recalculate the upper bound on what get_weight() can return.
const string * get_sort_key() const
double get_weight() const
Return the weight contribution for the current position.
Hierarchy of classes which Xapian can throw as exceptions.
unsigned XAPIAN_TERMCOUNT_BASE_TYPE termcount
A counts of terms.
Xapian::termcount get_wdf() const
Return the wdf for the document at the current position.
virtual base class for branched types of postlist
merge postlists from different databases
Xapian::doccount get_termfreq_max() const
Get an upper bound on the number of documents indexed by this term.
Internal * next()
Advance the current position to the next document in the postlist.
const string * get_collapse_key() const
If the collapse key is already known, return it.
Xapian::doccount get_termfreq_min() const
Get a lower bound on the number of documents indexed by this term.
void recalc_maxweight()
Called by postlists to indicate that they've rearranged themselves and the maxweight now possible is ...
virtual Xapian::termcount get_unique_terms() const
Return the number of unique terms in the document.
A document which gets its values from a ValueStreamManager.
Xapian::docid get_docid() const
Return the current docid.
Xapian::doccount get_termfreq_est() const
Get an estimate of the number of documents indexed by this term.
bool next_handling_prune(PostList *&pl, double w_min, MultiMatch *matcher)
unsigned XAPIAN_DOCID_BASE_TYPE doccount
A count of documents.
ValueStreamDocument & vsdoc
Document proxy used for valuestream caching.
virtual Xapian::termcount get_doclength() const
Return the document length of the document the current term comes from.
double get_maxweight() const
Return an upper bound on what get_weight() can return.
Various assertion macros.
unsigned XAPIAN_DOCID_BASE_TYPE docid
A unique identifier for a document.
Xapian::termcount count_matching_subqs() const
Count the number of leaf subqueries which match at the current position.
PostList * skip_to(Xapian::docid did, double w_min)
Skip forward to the specified docid.
vector< PostList * > plists
bool at_end() const
Return true if the current position is past the last entry in this list.
#define LOGCALL(CATEGORY, TYPE, FUNC, PARAMS)
MultiMatch * matcher
The object which is using this postlist to perform a match.