#include <multimatch.h>
Collaboration diagram for MultiMatch:

Public Member Functions | |
| MultiMatch (const Xapian::Database &db_, const Xapian::Query::Internal *query, Xapian::termcount qlen, const Xapian::RSet *omrset, Xapian::valueno collapse_key_, int percent_cutoff_, Xapian::weight weight_cutoff_, Xapian::Enquire::docid_order order_, Xapian::valueno sort_key_, Xapian::Enquire::Internal::sort_setting sort_by_, bool sort_value_forward_, const Xapian::Sorter *sorter_, Xapian::ErrorHandler *errorhandler, Stats &stats, const Xapian::Weight *wtscheme) | |
| MultiMatch constructor. | |
| void | get_mset (Xapian::doccount first, Xapian::doccount maxitems, Xapian::doccount check_at_least, Xapian::MSet &mset, const Stats &stats, const Xapian::MatchDecider *mdecider, const Xapian::MatchDecider *matchspy) |
| void | recalc_maxweight () |
| Called by postlists to indicate that they've rearranged themselves and the maxweight now possible is smaller. | |
Private Member Functions | |
| string | get_collapse_key (PostList *pl, Xapian::docid did, Xapian::valueno keyno, Xapian::Internal::RefCntPtr< Xapian::Document::Internal > &doc) |
| get the collapse key | |
| Xapian::weight | getorrecalc_maxweight (PostList *pl) |
| get the maxweight that the postlist pl may return, calling recalc_maxweight if recalculate_w_max is set, and unsetting it. | |
| MultiMatch (const MultiMatch &) | |
| Copying is not permitted. | |
| void | operator= (const MultiMatch &) |
| Assignment is not permitted. | |
Private Attributes | |
| std::vector< Xapian::Internal::RefCntPtr< SubMatch > > | leaves |
| Vector of the items. | |
| const Xapian::Database | db |
| const Xapian::Query::Internal * | query |
| Xapian::valueno | collapse_key |
| int | percent_cutoff |
| Xapian::weight | weight_cutoff |
| Xapian::Enquire::docid_order | order |
| Xapian::valueno | sort_key |
| Xapian::Enquire::Internal::sort_setting | sort_by |
| bool | sort_value_forward |
| const Xapian::Sorter * | sorter |
| Xapian::ErrorHandler * | errorhandler |
| ErrorHandler. | |
| const Xapian::Weight * | weight |
| Weighting scheme. | |
| bool | recalculate_w_max |
| Internal flag to note that w_max needs to be recalculated while query is running. | |
| vector< bool > | is_remote |
| Is each sub-database remote? | |
Definition at line 34 of file multimatch.h.
| MultiMatch::MultiMatch | ( | const MultiMatch & | ) | [private] |
Copying is not permitted.
| MultiMatch::MultiMatch | ( | const Xapian::Database & | db_, | |
| const Xapian::Query::Internal * | query, | |||
| Xapian::termcount | qlen, | |||
| const Xapian::RSet * | omrset, | |||
| Xapian::valueno | collapse_key_, | |||
| int | percent_cutoff_, | |||
| Xapian::weight | weight_cutoff_, | |||
| Xapian::Enquire::docid_order | order_, | |||
| Xapian::valueno | sort_key_, | |||
| Xapian::Enquire::Internal::sort_setting | sort_by_, | |||
| bool | sort_value_forward_, | |||
| const Xapian::Sorter * | sorter_, | |||
| Xapian::ErrorHandler * | errorhandler, | |||
| Stats & | stats, | |||
| const Xapian::Weight * | wtscheme | |||
| ) |
MultiMatch constructor.
| db_ | The database to use. | |
| query | The query | |
| qlen | The query length | |
| omrset | The relevance set (or NULL for no RSet) | |
| errorhandler | Errorhandler object | |
| sorter | Xapian::Sorter functor (or NULL for no Sorter). | |
| stats | The stats object to add our stats to. | |
| wtscheme | Weighting scheme |
Definition at line 178 of file multimatch.cc.
References Assert, collapse_key, db, DEBUGCALL, DEBUGLINE, errorhandler, Xapian::Database::internal, is_remote, leaves, order, percent_cutoff, prepare_sub_matches(), query, REL, REL_VAL, RemoteDatabase::set_query(), sort_by, sort_key, sort_value_forward, split_rset_by_db(), Xapian::Query::Internal::validate_query(), weight, and weight_cutoff.
| string MultiMatch::get_collapse_key | ( | PostList * | pl, | |
| Xapian::docid | did, | |||
| Xapian::valueno | keyno, | |||
| Xapian::Internal::RefCntPtr< Xapian::Document::Internal > & | doc | |||
| ) | [private] |
get the collapse key
Definition at line 252 of file multimatch.cc.
References Assert, db, DEBUGCALL, Xapian::Internal::RefCntPtr< T >::get(), Xapian::PostingIterator::Internal::get_collapse_key(), Xapian::Database::internal, and RETURN.
Referenced by get_mset().
| Xapian::weight MultiMatch::getorrecalc_maxweight | ( | PostList * | pl | ) | [private] |
get the maxweight that the postlist pl may return, calling recalc_maxweight if recalculate_w_max is set, and unsetting it.
Must only be called on the top of the postlist tree.
Definition at line 270 of file multimatch.cc.
References AssertEqDoubleParanoid, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_maxweight(), Xapian::PostingIterator::Internal::recalc_maxweight(), recalculate_w_max, and RETURN.
Referenced by get_mset().
| void MultiMatch::operator= | ( | const MultiMatch & | ) | [private] |
Assignment is not permitted.
| void MultiMatch::get_mset | ( | Xapian::doccount | first, | |
| Xapian::doccount | maxitems, | |||
| Xapian::doccount | check_at_least, | |||
| Xapian::MSet & | mset, | |||
| const Stats & | stats, | |||
| const Xapian::MatchDecider * | mdecider, | |||
| const Xapian::MatchDecider * | matchspy | |||
| ) |
Comparison functor for sorting MSet
Definition at line 287 of file multimatch.cc.
References Assert, Xapian::BAD_VALUENO, Xapian::Internal::MSetItem::collapse_count, Xapian::Internal::MSetItem::collapse_key, collapse_key, db, DEBUGCALL, DEBUGLINE, Xapian::Enquire::DESCENDING, Xapian::Internal::MSetItem::did, errorhandler, Xapian::Internal::RefCntPtr< T >::get(), get_collapse_key(), get_msetcmp_function(), RemoteSubMatch::get_percent_factor(), getorrecalc_maxweight(), if(), Xapian::Database::internal, is_remote, leaves, next_handling_prune(), order, percent_cutoff, query, rare, recalculate_w_max, REL, REL_VAL, sort_by, sort_key, Xapian::Internal::MSetItem::sort_key, sort_value_forward, sorter, Xapian::Database::termlist_begin(), Xapian::Database::termlist_end(), VAL, w(), weight_cutoff, and Xapian::Internal::MSetItem::wt.
| void MultiMatch::recalc_maxweight | ( | ) |
Called by postlists to indicate that they've rearranged themselves and the maxweight now possible is smaller.
Definition at line 1077 of file multimatch.cc.
References DEBUGCALL, and recalculate_w_max.
Referenced by MultiAndPostList::check_helper(), BranchPostList::handle_prune(), ExtraWeightPostList::next(), next_handling_prune(), MultiAndPostList::next_helper(), ExtraWeightPostList::skip_to(), skip_to_handling_prune(), and MultiAndPostList::skip_to_helper().
std::vector<Xapian::Internal::RefCntPtr<SubMatch> > MultiMatch::leaves [private] |
Vector of the items.
Definition at line 38 of file multimatch.h.
Referenced by get_mset(), and MultiMatch().
const Xapian::Database MultiMatch::db [private] |
Definition at line 40 of file multimatch.h.
Referenced by get_collapse_key(), get_mset(), and MultiMatch().
const Xapian::Query::Internal* MultiMatch::query [private] |
Xapian::valueno MultiMatch::collapse_key [private] |
int MultiMatch::percent_cutoff [private] |
Xapian::weight MultiMatch::weight_cutoff [private] |
Xapian::valueno MultiMatch::sort_key [private] |
bool MultiMatch::sort_value_forward [private] |
const Xapian::Sorter* MultiMatch::sorter [private] |
Xapian::ErrorHandler* MultiMatch::errorhandler [private] |
ErrorHandler.
Definition at line 61 of file multimatch.h.
Referenced by get_mset(), and MultiMatch().
const Xapian::Weight* MultiMatch::weight [private] |
bool MultiMatch::recalculate_w_max [private] |
Internal flag to note that w_max needs to be recalculated while query is running.
Definition at line 69 of file multimatch.h.
Referenced by get_mset(), getorrecalc_maxweight(), and recalc_maxweight().
vector<bool> MultiMatch::is_remote [private] |
Is each sub-database remote?
Definition at line 72 of file multimatch.h.
Referenced by get_mset(), and MultiMatch().