OrPostList Class Reference

A postlist comprising two postlists ORed together. More...

#include <orpostlist.h>

Inheritance diagram for OrPostList:

Inheritance graph
[legend]
Collaboration diagram for OrPostList:

Collaboration graph
[legend]
List of all members.

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.
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.
PostListnext (Xapian::weight w_min)
 Advance the current position to the next document in the postlist.
PostListskip_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::doclength get_doclength () const
 Return the document length of the document the current term comes from.
 OrPostList (PostList *left_, PostList *right_, MultiMatch *matcher_, Xapian::doccount dbsize_)

Private Attributes

Xapian::docid lhead
Xapian::docid rhead
Xapian::weight lmax
Xapian::weight rmax
Xapian::weight minmax
Xapian::doccount dbsize

Detailed Description

A postlist comprising two postlists ORed together.

This postlist returns a posting if it is in either of the sub-postlists. The weight for a posting is the sum of the weights of the sub-postings, if both exist, or the sum of the single sub-posting which exists otherwise.

Definition at line 37 of file orpostlist.h.


Constructor & Destructor Documentation

OrPostList::OrPostList ( PostList left_,
PostList right_,
MultiMatch matcher_,
Xapian::doccount  dbsize_ 
)

Definition at line 33 of file orpostlist.cc.

References DEBUGCALL.


Member Function Documentation

Xapian::doccount OrPostList::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 162 of file orpostlist.cc.

References dbsize, DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_max(), BranchPostList::l, BranchPostList::r, and RETURN.

Xapian::doccount OrPostList::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 169 of file orpostlist.cc.

References DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_min(), BranchPostList::l, BranchPostList::r, and RETURN.

Xapian::doccount OrPostList::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 176 of file orpostlist.cc.

References dbsize, DEBUGCALL, Xapian::PostingIterator::Internal::get_termfreq_est(), BranchPostList::l, BranchPostList::r, and RETURN.

Xapian::docid OrPostList::get_docid (  )  const [virtual]

Return the current docid.

Implements Xapian::PostingIterator::Internal.

Definition at line 188 of file orpostlist.cc.

References Assert, DEBUGCALL, lhead, RETURN, and rhead.

Xapian::weight OrPostList::get_weight (  )  const [virtual]

Return the weight contribution for the current position.

Implements Xapian::PostingIterator::Internal.

Definition at line 197 of file orpostlist.cc.

References Assert, DEBUGCALL, Xapian::PostingIterator::Internal::get_weight(), BranchPostList::l, lhead, BranchPostList::r, RETURN, and rhead.

Xapian::weight OrPostList::get_maxweight (  )  const [virtual]

Return an upper bound on what get_weight() can return.

Implements Xapian::PostingIterator::Internal.

Definition at line 208 of file orpostlist.cc.

References DEBUGCALL, lmax, RETURN, and rmax.

Referenced by recalc_maxweight().

Xapian::weight OrPostList::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.

Implements Xapian::PostingIterator::Internal.

Definition at line 215 of file orpostlist.cc.

References DEBUGCALL, get_maxweight(), BranchPostList::l, lmax, minmax, BranchPostList::r, Xapian::PostingIterator::Internal::recalc_maxweight(), RETURN, and rmax.

PostList * OrPostList::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.

Parameters:
w_min The minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore).
Returns:
If a non-NULL pointer is returned, then the caller should substitute the returned pointer for its pointer to us, and then delete us. This "pruning" can only happen for a non-leaf subclass of this class.

Implements Xapian::PostingIterator::Internal.

Definition at line 44 of file orpostlist.cc.

References Assert, Xapian::PostingIterator::Internal::at_end(), dbsize, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_docid(), BranchPostList::l, lhead, lmax, BranchPostList::matcher, minmax, next_handling_prune(), BranchPostList::r, RETURN, rhead, rmax, and skip_to_handling_prune().

PostList * OrPostList::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).

Parameters:
w_min The minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore).
Returns:
If a non-NULL pointer is returned, then the caller should substitute the returned pointer for its pointer to us, and then delete us. This "pruning" can only happen for a non-leaf subclass of this class.

Implements Xapian::PostingIterator::Internal.

Definition at line 105 of file orpostlist.cc.

References Assert, dbsize, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_docid(), BranchPostList::l, lhead, lmax, BranchPostList::matcher, minmax, BranchPostList::r, RETURN, rhead, rmax, and skip_to_handling_prune().

bool OrPostList::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 225 of file orpostlist.cc.

References AssertParanoid, Xapian::PostingIterator::Internal::at_end(), DEBUGCALL, BranchPostList::l, BranchPostList::r, and RETURN.

std::string OrPostList::get_description (  )  const [virtual]

Return a string description of this object.

Implements Xapian::PostingIterator::Internal.

Definition at line 234 of file orpostlist.cc.

References Xapian::PostingIterator::Internal::get_description(), BranchPostList::l, and BranchPostList::r.

Xapian::doclength OrPostList::get_doclength (  )  const [virtual]

Return the document length of the document the current term comes from.

This is obtained by asking the subpostlist which contains the current document for the document length. If both subpostlists are valid, the left one is asked.

Implements Xapian::PostingIterator::Internal.

Definition at line 240 of file orpostlist.cc.

References Assert, DEBUGCALL, DEBUGLINE, Xapian::PostingIterator::Internal::get_doclength(), BranchPostList::l, lhead, BranchPostList::r, RETURN, and rhead.


Member Data Documentation

Xapian::docid OrPostList::lhead [private]

Definition at line 39 of file orpostlist.h.

Referenced by get_docid(), get_doclength(), get_weight(), next(), and skip_to().

Xapian::docid OrPostList::rhead [private]

Definition at line 39 of file orpostlist.h.

Referenced by get_docid(), get_doclength(), get_weight(), next(), and skip_to().

Xapian::weight OrPostList::lmax [private]

Definition at line 40 of file orpostlist.h.

Referenced by get_maxweight(), next(), recalc_maxweight(), and skip_to().

Xapian::weight OrPostList::rmax [private]

Definition at line 40 of file orpostlist.h.

Referenced by get_maxweight(), next(), recalc_maxweight(), and skip_to().

Xapian::weight OrPostList::minmax [private]

Definition at line 40 of file orpostlist.h.

Referenced by next(), recalc_maxweight(), and skip_to().

Xapian::doccount OrPostList::dbsize [private]

Definition at line 41 of file orpostlist.h.

Referenced by get_termfreq_est(), get_termfreq_max(), next(), and skip_to().


The documentation for this class was generated from the following files:
Documentation for Xapian (version 1.0.10).
Generated on 24 Dec 2008 by Doxygen 1.5.2.