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

#include <chert_modifiedpostlist.h>

+ Inheritance diagram for ChertModifiedPostList:
+ Collaboration diagram for ChertModifiedPostList:

Public Member Functions

 ChertModifiedPostList (Xapian::Internal::intrusive_ptr< const ChertDatabase > this_db_, const string &term_, const map< Xapian::docid, pair< char, Xapian::termcount > > &mods_, Xapian::termcount wdf_upper_bound_)
 Constructor. More...
 
 ~ChertModifiedPostList ()
 
Xapian::doccount get_termfreq () const
 Return the exact term frequency. More...
 
Xapian::docid get_docid () const
 Return the current docid. More...
 
Xapian::termcount get_doclength () const
 Return the length of current document. More...
 
Xapian::termcount get_unique_terms () const
 Return the number of unique terms in the current document. More...
 
Xapian::termcount get_wdf () const
 Return the wdf for the document at the current position. More...
 
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...
 
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...
 
PostListnext (double w_min)
 Advance the current position to the next document in the postlist. More...
 
PostListskip_to (Xapian::docid desired_did, double w_min)
 Skip forward to the specified docid. More...
 
bool at_end () const
 Return true if the current position is past the last entry in this list. More...
 
std::string get_description () const
 Return a string description of this object. More...
 
- Public Member Functions inherited from ChertPostList
 ChertPostList (Xapian::Internal::intrusive_ptr< const ChertDatabase > this_db_, const string &term, bool keep_reference)
 Default constructor. More...
 
 ~ChertPostList ()
 Destructor. More...
 
bool jump_to (Xapian::docid desired_did)
 Used for looking up doclens. More...
 
Xapian::doccount get_termfreq () const
 Returns number of docs indexed by this term. More...
 
Xapian::docid get_docid () const
 Returns the current docid. More...
 
Xapian::termcount get_doclength () const
 Returns the length of current document. More...
 
Xapian::termcount get_unique_terms () const
 Return the number of unique terms in the current document. More...
 
Xapian::termcount get_wdf () const
 Returns the Within Document Frequency of the term in the current document. More...
 
PositionListread_position_list ()
 Get the list of positions of the term in the current document. More...
 
PositionListopen_position_list () const
 Get the list of positions of the term in the current document. More...
 
PostListnext (double w_min)
 Move to the next document. More...
 
PostListskip_to (Xapian::docid desired_did, double w_min)
 Skip to next document with docid >= docid. More...
 
bool at_end () const
 Return true if and only if we're off the end of the list. More...
 
Xapian::termcount get_wdf_upper_bound () const
 
std::string get_description () const
 Get a description of the document. More...
 
- Public Member Functions inherited from LeafPostList
 ~LeafPostList ()
 
void set_termweight (const Xapian::Weight *weight_)
 Set the weighting scheme to use during matching. More...
 
double resolve_lazy_termweight (Xapian::Weight *weight_, Xapian::Weight::Internal *stats, Xapian::termcount qlen, Xapian::termcount wqf, double factor)
 
Xapian::doccount get_termfreq_min () const
 Get a lower bound on the number of documents indexed by this term. More...
 
Xapian::doccount get_termfreq_max () const
 Get an upper bound on the number of documents indexed by this term. More...
 
Xapian::doccount get_termfreq_est () const
 Get an estimate of the number of documents indexed by this term. More...
 
double get_maxweight () const
 Return an upper bound on what get_weight() can return. More...
 
double get_weight () const
 Return the weight contribution for the current position. More...
 
double recalc_maxweight ()
 Recalculate the upper bound on what get_weight() can return. More...
 
TermFreqs get_termfreq_est_using_stats (const Xapian::Weight::Internal &stats) const
 Get an estimate for the termfreq and reltermfreq, given the stats. More...
 
Xapian::termcount count_matching_subqs () const
 Count the number of leaf subqueries which match at the current position. More...
 
void gather_position_lists (OrPositionList *orposlist)
 Gather PositionList* objects for a subtree. More...
 
virtual LeafPostListopen_nearby_postlist (const std::string &term_) const
 Open another postlist from the same database. More...
 
void set_term (const std::string &term_)
 Set the term name. More...
 
- 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 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 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...
 
- Public Member Functions inherited from Xapian::Internal::intrusive_base
 intrusive_base ()
 Construct with no references. More...
 

Private Member Functions

void skip_deletes (double w_min)
 Skip over deleted documents after a next() or skip_to(). More...
 

Private Attributes

PositionListposlist
 Pointer to PositionList returned from read_position_list to be deleted. More...
 
map< Xapian::docid, pair< char, Xapian::termcount > > mods
 Modifications to apply to the ChertPostList. More...
 
map< Xapian::docid, pair< char, Xapian::termcount > >::const_iterator it
 Modifications to apply to the ChertPostList. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ChertPostList
static void read_number_of_entries (const char **posptr, const char *end, Xapian::doccount *number_of_entries_ptr, Xapian::termcount *collection_freq_ptr)
 Read the number of entries and the collection frequency. More...
 
- Public Attributes inherited from Xapian::Internal::intrusive_base
unsigned _refs
 Reference count. More...
 
- Protected Member Functions inherited from LeafPostList
 LeafPostList (const std::string &term_)
 Only constructable as a base class for derived classes. More...
 
- Protected Member Functions inherited from Xapian::PostingIterator::Internal
 Internal ()
 Only constructable as a base class for derived classes. More...
 
- Protected Attributes inherited from ChertPostList
Xapian::Internal::intrusive_ptr< const ChertDatabasethis_db
 The database we are searching. More...
 
ChertPositionList positionlist
 The position list object for this posting list. More...
 
bool have_started
 Whether we've started reading the list yet. More...
 
Xapian::termcount wdf_upper_bound
 Upper bound on wdf for this postlist. More...
 
- Protected Attributes inherited from LeafPostList
const Xapian::Weightweight
 
bool need_doclength
 
bool need_unique_terms
 
std::string term
 The term name for this postlist (empty for an alldocs postlist). More...
 

Detailed Description

Definition at line 32 of file chert_modifiedpostlist.h.

Constructor & Destructor Documentation

◆ ChertModifiedPostList()

ChertModifiedPostList::ChertModifiedPostList ( Xapian::Internal::intrusive_ptr< const ChertDatabase this_db_,
const string &  term_,
const map< Xapian::docid, pair< char, Xapian::termcount > > &  mods_,
Xapian::termcount  wdf_upper_bound_ 
)
inline

Constructor.

Definition at line 47 of file chert_modifiedpostlist.h.

References ChertPostList::wdf_upper_bound.

◆ ~ChertModifiedPostList()

ChertModifiedPostList::~ChertModifiedPostList ( )

Definition at line 27 of file chert_modifiedpostlist.cc.

References poslist.

Member Function Documentation

◆ at_end()

bool ChertModifiedPostList::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 153 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), it, and mods.

◆ get_description()

std::string ChertModifiedPostList::get_description ( ) const
virtual

Return a string description of this object.

Implements Xapian::PostingIterator::Internal.

Definition at line 158 of file chert_modifiedpostlist.cc.

References ChertPostList::get_description().

◆ get_docid()

Xapian::docid ChertModifiedPostList::get_docid ( ) const
virtual

Return the current docid.

Implements Xapian::PostingIterator::Internal.

Definition at line 57 of file chert_modifiedpostlist.cc.

References Assert, ChertPostList::at_end(), ChertPostList::get_docid(), it, and mods.

◆ get_doclength()

Xapian::termcount ChertModifiedPostList::get_doclength ( ) const
virtual

◆ get_termfreq()

Xapian::doccount ChertModifiedPostList::get_termfreq ( ) const
virtual

Return the exact term frequency.

Leaf postlists have an exact termfreq, which get_termfreq_min(), get_termfreq_max(), and get_termfreq_est() all report.

Implements LeafPostList.

Definition at line 49 of file chert_modifiedpostlist.cc.

References ChertDatabase::get_freqs(), LeafPostList::term, and ChertPostList::this_db.

◆ get_unique_terms()

Xapian::termcount ChertModifiedPostList::get_unique_terms ( ) const
virtual

◆ get_wdf()

Xapian::termcount ChertModifiedPostList::get_wdf ( ) const
virtual

Return the wdf for the document at the current position.

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::PostingIterator::Internal.

Definition at line 84 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), ChertPostList::get_docid(), ChertPostList::get_wdf(), it, and mods.

◆ next()

PostList * ChertModifiedPostList::next ( double  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(), skip_to() or check() must be called before any methods which need the context of the current position.

Parameters
w_minThe 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 119 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), ChertPostList::get_docid(), ChertPostList::have_started, it, mods, Xapian::PostingIterator::Internal::next(), and skip_deletes().

◆ open_position_list()

PositionList * ChertModifiedPostList::open_position_list ( ) const
virtual

Read the position list for the term in the current document and return a pointer to it (not owned by the PostList).

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::PostingIterator::Internal.

Definition at line 110 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), ChertPostList::get_docid(), it, mods, ChertPostList::open_position_list(), ChertDatabase::open_position_list(), LeafPostList::term, and ChertPostList::this_db.

◆ read_position_list()

PositionList * ChertModifiedPostList::read_position_list ( )
virtual

Read the position list for the term in the current document and return a pointer to it (owned by the PostList).

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::PostingIterator::Internal.

Definition at line 96 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), ChertPostList::get_docid(), it, mods, ChertDatabase::open_position_list(), poslist, ChertPostList::read_position_list(), LeafPostList::term, and ChertPostList::this_db.

◆ skip_deletes()

void ChertModifiedPostList::skip_deletes ( double  w_min)
private

Skip over deleted documents after a next() or skip_to().

Definition at line 33 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), ChertPostList::get_docid(), it, mods, and Xapian::PostingIterator::Internal::next().

Referenced by next(), and skip_to().

◆ skip_to()

PostList * ChertModifiedPostList::skip_to ( Xapian::docid  did,
double  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_minThe 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 143 of file chert_modifiedpostlist.cc.

References ChertPostList::at_end(), it, mods, skip_deletes(), and ChertPostList::skip_to().

Member Data Documentation

◆ it

map<Xapian::docid, pair<char, Xapian::termcount> >::const_iterator ChertModifiedPostList::it
private

◆ mods

map<Xapian::docid, pair<char, Xapian::termcount> > ChertModifiedPostList::mods
private

◆ poslist

PositionList* ChertModifiedPostList::poslist
private

Pointer to PositionList returned from read_position_list to be deleted.

Definition at line 40 of file chert_modifiedpostlist.h.

Referenced by read_position_list(), and ~ChertModifiedPostList().


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