xapian-core  1.4.19
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MultiMatch Class Reference

#include <multimatch.h>

+ Collaboration diagram for MultiMatch:

Public Member Functions

 MultiMatch (const Xapian::Database &db_, const Xapian::Query &query, Xapian::termcount qlen, const Xapian::RSet *omrset, Xapian::doccount collapse_max_, Xapian::valueno collapse_key_, int percent_cutoff_, double weight_cutoff_, Xapian::Enquire::docid_order order_, Xapian::valueno sort_key_, Xapian::Enquire::Internal::sort_setting sort_by_, bool sort_value_forward_, double time_limit_, Xapian::Weight::Internal &stats, const Xapian::Weight *wtscheme, const vector< Xapian::Internal::opt_intrusive_ptr< Xapian::MatchSpy >> &matchspies_, bool have_sorter, bool have_mdecider)
 MultiMatch constructor. More...
 
void get_mset (Xapian::doccount first, Xapian::doccount maxitems, Xapian::doccount check_at_least, Xapian::MSet &mset, Xapian::Weight::Internal &stats, const Xapian::MatchDecider *mdecider, const Xapian::KeyMaker *sorter)
 Run the match and generate an MSet object. More...
 
void recalc_maxweight ()
 Called by postlists to indicate that they've rearranged themselves and the maxweight now possible is smaller. More...
 
bool full_db_has_positions () const
 

Private Member Functions

double 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. More...
 
 MultiMatch (const MultiMatch &)
 Copying is not permitted. More...
 
void operator= (const MultiMatch &)
 Assignment is not permitted. More...
 

Private Attributes

std::vector< Xapian::Internal::intrusive_ptr< SubMatch > > leaves
 Vector of the items. More...
 
const Xapian::Database db
 
Xapian::Query query
 
Xapian::doccount collapse_max
 
Xapian::valueno collapse_key
 
int percent_cutoff
 
double weight_cutoff
 
Xapian::Enquire::docid_order order
 
Xapian::valueno sort_key
 
Xapian::Enquire::Internal::sort_setting sort_by
 
bool sort_value_forward
 
double time_limit
 
const Xapian::Weightweight
 Weighting scheme. More...
 
bool recalculate_w_max
 Internal flag to note that w_max needs to be recalculated while query is running. More...
 
vector< bool > is_remote
 Is each sub-database remote? More...
 
const vector< Xapian::Internal::opt_intrusive_ptr< Xapian::MatchSpy > > & matchspies
 The matchspies to use. More...
 

Detailed Description

Definition at line 34 of file multimatch.h.

Constructor & Destructor Documentation

◆ MultiMatch() [1/2]

MultiMatch::MultiMatch ( const MultiMatch )
private

Copying is not permitted.

◆ MultiMatch() [2/2]

MultiMatch::MultiMatch ( const Xapian::Database db_,
const Xapian::Query query,
Xapian::termcount  qlen,
const Xapian::RSet omrset,
Xapian::doccount  collapse_max_,
Xapian::valueno  collapse_key_,
int  percent_cutoff_,
double  weight_cutoff_,
Xapian::Enquire::docid_order  order_,
Xapian::valueno  sort_key_,
Xapian::Enquire::Internal::sort_setting  sort_by_,
bool  sort_value_forward_,
double  time_limit_,
Xapian::Weight::Internal stats,
const Xapian::Weight wtscheme,
const vector< Xapian::Internal::opt_intrusive_ptr< Xapian::MatchSpy >> &  matchspies_,
bool  have_sorter,
bool  have_mdecider 
)

MultiMatch constructor.

Parameters
db_The database to use.
queryThe query
qlenThe query length
omrsetThe relevance set (or NULL for no RSet)
time_limit_Seconds to reduce check_at_least after (or <= 0 for no limit)
statsThe stats object to add our stats to.
wtschemeWeighting scheme
matchspies_Any the MatchSpy objects in use.
have_sorterIs there a sorter in use?
have_mdeciderIs there a Xapian::MatchDecider in use?

Definition at line 277 of file multimatch.cc.

References Assert, BACKEND_REMOTE, collapse_key, collapse_max, db, Xapian::Query::empty(), Xapian::Database::Internal::get_backend_info(), Xapian::Database::internal, is_remote, leaves, LOGCALL_CTOR, matchspies, order, percent_cutoff, prepare_sub_matches(), query, Xapian::Database::Internal::readahead_for_query(), REL_VAL, Xapian::Weight::Internal::set_bounds_from_db(), Xapian::Weight::Internal::set_query(), RemoteDatabase::set_query(), sort_by, sort_key, sort_value_forward, split_rset_by_db(), time_limit, weight, and weight_cutoff.

Member Function Documentation

◆ full_db_has_positions()

bool MultiMatch::full_db_has_positions ( ) const
inline

Definition at line 140 of file multimatch.h.

References Xapian::Database::has_positions().

Referenced by QueryOptimiser::full_db_has_positions().

◆ get_mset()

void MultiMatch::get_mset ( Xapian::doccount  first,
Xapian::doccount  maxitems,
Xapian::doccount  check_at_least,
Xapian::MSet mset,
Xapian::Weight::Internal stats,
const Xapian::MatchDecider mdecider,
const Xapian::KeyMaker sorter 
)

◆ getorrecalc_maxweight()

double 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 358 of file multimatch.cc.

References Xapian::PostingIterator::Internal::get_description(), Xapian::PostingIterator::Internal::get_maxweight(), LOGCALL, LOGLINE, Xapian::PostingIterator::Internal::recalc_maxweight(), recalculate_w_max, and RETURN.

Referenced by get_mset().

◆ operator=()

void MultiMatch::operator= ( const MultiMatch )
private

Assignment is not permitted.

◆ recalc_maxweight()

void MultiMatch::recalc_maxweight ( )
inline

Member Data Documentation

◆ collapse_key

Xapian::valueno MultiMatch::collapse_key
private

Definition at line 46 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ collapse_max

Xapian::doccount MultiMatch::collapse_max
private

Definition at line 44 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ db

const Xapian::Database MultiMatch::db
private

Definition at line 40 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ is_remote

vector<bool> MultiMatch::is_remote
private

Is each sub-database remote?

Definition at line 71 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ leaves

std::vector<Xapian::Internal::intrusive_ptr<SubMatch> > MultiMatch::leaves
private

Vector of the items.

Definition at line 38 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ matchspies

const vector<Xapian::Internal::opt_intrusive_ptr<Xapian::MatchSpy> >& MultiMatch::matchspies
private

The matchspies to use.

Definition at line 74 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ order

Xapian::Enquire::docid_order MultiMatch::order
private

Definition at line 52 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ percent_cutoff

int MultiMatch::percent_cutoff
private

Definition at line 48 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ query

Xapian::Query MultiMatch::query
private

Definition at line 42 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ recalculate_w_max

bool MultiMatch::recalculate_w_max
private

Internal flag to note that w_max needs to be recalculated while query is running.

Definition at line 68 of file multimatch.h.

Referenced by get_mset(), and getorrecalc_maxweight().

◆ sort_by

Xapian::Enquire::Internal::sort_setting MultiMatch::sort_by
private

Definition at line 56 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ sort_key

Xapian::valueno MultiMatch::sort_key
private

Definition at line 54 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ sort_value_forward

bool MultiMatch::sort_value_forward
private

Definition at line 58 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ time_limit

double MultiMatch::time_limit
private

Definition at line 60 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().

◆ weight

const Xapian::Weight* MultiMatch::weight
private

Weighting scheme.

Definition at line 63 of file multimatch.h.

Referenced by MultiMatch().

◆ weight_cutoff

double MultiMatch::weight_cutoff
private

Definition at line 50 of file multimatch.h.

Referenced by get_mset(), and MultiMatch().


The documentation for this class was generated from the following files: