xapian-core  1.4.27
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
BranchPostList Class Reference

Base class for postlists which are generated by merging two sub-postlists. More...

#include <branchpostlist.h>

+ Inheritance diagram for BranchPostList:
+ Collaboration diagram for BranchPostList:

Public Member Functions

 BranchPostList (PostList *l_, PostList *r_, MultiMatch *matcher_)
 
virtual ~BranchPostList ()
 
- Public Member Functions inherited from Xapian::PostingIterator::Internal
virtual ~Internal ()
 We have virtual methods and want to be able to delete derived classes using a pointer to the base class, so we need a virtual destructor. More...
 
virtual Xapian::doccount get_termfreq_min () const =0
 Get a lower bound on the number of documents indexed by this term. More...
 
virtual Xapian::doccount get_termfreq_max () const =0
 Get an upper bound on the number of documents indexed by this term. More...
 
virtual Xapian::doccount get_termfreq_est () const =0
 Get an estimate of the number of documents indexed by this term. More...
 
virtual TermFreqs get_termfreq_est_using_stats (const Xapian::Weight::Internal &stats) const
 Get an estimate for the termfreq and reltermfreq, given the stats. More...
 
virtual double get_maxweight () const =0
 Return an upper bound on what get_weight() can return. More...
 
virtual Xapian::docid get_docid () const =0
 Return the current docid. More...
 
virtual Xapian::termcount get_doclength () const =0
 Return the length of current document. More...
 
virtual Xapian::termcount get_unique_terms () const =0
 Return the number of unique terms in the current document. More...
 
virtual Xapian::termcount get_wdf () const
 Return the wdf for the document at the current position. More...
 
virtual double get_weight () const =0
 Return the weight contribution for the current position. More...
 
virtual const std::string * get_sort_key () const
 
virtual const std::string * get_collapse_key () const
 If the collapse key is already known, return it. More...
 
virtual bool at_end () const =0
 Return true if the current position is past the last entry in this list. More...
 
virtual double recalc_maxweight ()=0
 Recalculate the upper bound on what get_weight() can return. More...
 
virtual PositionListread_position_list ()
 Read the position list for the term in the current document and return a pointer to it (owned by the PostList). More...
 
virtual PositionListopen_position_list () const
 Read the position list for the term in the current document and return a pointer to it (not owned by the PostList). More...
 
virtual Internalnext (double w_min)=0
 Advance the current position to the next document in the postlist. More...
 
virtual Internalskip_to (Xapian::docid did, double w_min)=0
 Skip forward to the specified docid. More...
 
virtual Internalcheck (Xapian::docid did, double w_min, bool &valid)
 Check if the specified docid occurs in this postlist. More...
 
Internalnext ()
 Advance the current position to the next document in the postlist. More...
 
Internalskip_to (Xapian::docid did)
 Skip forward to the specified docid. More...
 
virtual Xapian::termcount count_matching_subqs () const
 Count the number of leaf subqueries which match at the current position. More...
 
virtual void gather_position_lists (OrPositionList *orposlist)
 Gather PositionList* objects for a subtree. More...
 
virtual std::string get_description () const =0
 Return a string description of this object. More...
 
- Public Member Functions inherited from Xapian::Internal::intrusive_base
 intrusive_base ()
 Construct with no references. More...
 

Protected Member Functions

void handle_prune (PostList *&kid, PostList *ret)
 Utility method, to call recalc_maxweight() and do the pruning if a next() or skip_to() returns non-NULL result. More...
 
- Protected Member Functions inherited from Xapian::PostingIterator::Internal
 Internal ()
 Only constructable as a base class for derived classes. More...
 

Protected Attributes

PostListl
 Left sub-postlist. More...
 
PostListr
 Right sub-postlist. More...
 
MultiMatchmatcher
 The object which is using this postlist to perform a match. More...
 

Private Member Functions

 BranchPostList (const BranchPostList &)
 
BranchPostListoperator= (const BranchPostList &)
 

Additional Inherited Members

- Public Attributes inherited from Xapian::Internal::intrusive_base
unsigned _refs
 Reference count. More...
 

Detailed Description

Base class for postlists which are generated by merging two sub-postlists.

These postlists form a tree which is used to perform a sum over all the terms in the query for each document, in order to calculate the score for that document.

Definition at line 37 of file branchpostlist.h.

Constructor & Destructor Documentation

◆ BranchPostList() [1/2]

BranchPostList::BranchPostList ( const BranchPostList )
private

◆ BranchPostList() [2/2]

BranchPostList::BranchPostList ( PostList l_,
PostList r_,
MultiMatch matcher_ 
)
inline

Definition at line 71 of file branchpostlist.h.

References ~BranchPostList().

◆ ~BranchPostList()

BranchPostList::~BranchPostList ( )
virtual

Definition at line 26 of file branchpostlist.cc.

References l, and r.

Referenced by BranchPostList().

Member Function Documentation

◆ handle_prune()

void BranchPostList::handle_prune ( PostList *&  kid,
PostList ret 
)
inlineprotected

Utility method, to call recalc_maxweight() and do the pruning if a next() or skip_to() returns non-NULL result.

Definition at line 60 of file branchpostlist.h.

References MultiMatch::recalc_maxweight().

Referenced by AndNotPostList::advance_to_next_match(), OrPostList::check(), OrPostList::next(), AndMaybePostList::process_next_or_skip_to(), and OrPostList::skip_to().

◆ operator=()

BranchPostList& BranchPostList::operator= ( const BranchPostList )
private

Member Data Documentation

◆ l

PostList* BranchPostList::l
protected

Left sub-postlist.

Definition at line 45 of file branchpostlist.h.

Referenced by AndNotPostList::advance_to_next_match(), AndMaybePostList::AndMaybePostList(), OrPostList::at_end(), OrPostList::check(), AndNotPostList::count_matching_subqs(), OrPostList::count_matching_subqs(), AndMaybePostList::count_matching_subqs(), OrPostList::gather_position_lists(), AndMaybePostList::gather_position_lists(), AndNotPostList::get_description(), OrPostList::get_description(), AndMaybePostList::get_description(), AndNotPostList::get_doclength(), OrPostList::get_doclength(), AndMaybePostList::get_doclength(), AndNotPostList::get_maxweight(), AndNotPostList::get_termfreq_est(), OrPostList::get_termfreq_est(), AndMaybePostList::get_termfreq_est(), AndNotPostList::get_termfreq_est_using_stats(), OrPostList::get_termfreq_est_using_stats(), AndMaybePostList::get_termfreq_est_using_stats(), AndNotPostList::get_termfreq_max(), OrPostList::get_termfreq_max(), AndMaybePostList::get_termfreq_max(), AndNotPostList::get_termfreq_min(), OrPostList::get_termfreq_min(), AndMaybePostList::get_termfreq_min(), AndNotPostList::get_unique_terms(), OrPostList::get_unique_terms(), AndMaybePostList::get_unique_terms(), AndNotPostList::get_wdf(), OrPostList::get_wdf(), AndMaybePostList::get_wdf(), AndNotPostList::get_weight(), OrPostList::get_weight(), AndMaybePostList::get_weight(), AndNotPostList::next(), OrPostList::next(), AndMaybePostList::next(), AndMaybePostList::process_next_or_skip_to(), AndNotPostList::recalc_maxweight(), OrPostList::recalc_maxweight(), AndMaybePostList::recalc_maxweight(), AndNotPostList::skip_to(), OrPostList::skip_to(), AndMaybePostList::skip_to(), AndMaybePostList::sync_rhs(), and ~BranchPostList().

◆ matcher

MultiMatch* BranchPostList::matcher
protected

The object which is using this postlist to perform a match.

This object needs to be notified when the tree changes such that the maximum weights need to be recalculated.

Definition at line 55 of file branchpostlist.h.

Referenced by AndNotPostList::advance_to_next_match(), OrPostList::check(), OrPostList::next(), AndMaybePostList::next(), AndMaybePostList::process_next_or_skip_to(), OrPostList::skip_to(), AndMaybePostList::skip_to(), and AndMaybePostList::sync_rhs().

◆ r

PostList* BranchPostList::r
protected

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