|
xapian-core
2.0.0
|
A PostList in an inmemory database. More...
#include <inmemory_database.h>
Inheritance diagram for InMemoryPostList:
Collaboration diagram for InMemoryPostList:Public Member Functions | |
| Xapian::docid | get_docid () const |
| Return the current docid. More... | |
| Xapian::termcount | get_wdf () const |
| Return the wdf for the document at the current position. More... | |
| Xapian::termcount | get_wdfdocmax () const |
| PositionList * | read_position_list () |
| Read the position list for the term in the current document and return a pointer to it (owned by the PostList). More... | |
| PositionList * | open_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... | |
| PostList * | next (double w_min) |
| Advance the current position to the next document in the postlist. More... | |
| PostList * | skip_to (Xapian::docid 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... | |
| Xapian::termcount | get_wdf_upper_bound () const |
| void | get_docid_range (Xapian::docid &first, Xapian::docid &last) const |
| Get the bounds on the range of docids this PostList can return. More... | |
| std::string | get_description () const |
| Return a string description of this object. More... | |
Public Member Functions inherited from LeafPostList | |
| ~LeafPostList () | |
| Xapian::termcount | get_collfreq () const |
| Get the collection frequency of the term. More... | |
| 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, const Xapian::Database::Internal *shard) |
| double | get_weight (Xapian::termcount doclen, Xapian::termcount unique_terms, Xapian::termcount wdfdocmax) const |
| Return the weight contribution for the current position. More... | |
| double | recalc_maxweight () |
| Recalculate the upper bound on what get_weight() can return. 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 bool | open_nearby_postlist (std::string_view term_, bool need_read_pos, LeafPostList *&pl) const |
| Open another postlist from the same database. More... | |
| const std::string & | get_term () const |
| Get the term name. More... | |
| void | set_term (std::string_view term_) |
| Set the term name. More... | |
Public Member Functions inherited from Xapian::Internal::PostList | |
| virtual | ~PostList () |
| 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... | |
| Xapian::doccount | get_termfreq () const |
| Get an estimate of the number of documents this PostList will return. More... | |
| virtual PostList * | check (Xapian::docid did, double w_min, bool &valid) |
| Check if the specified docid occurs in this postlist. More... | |
| PostList * | next () |
| Advance the current position to the next document in the postlist. More... | |
| PostList * | skip_to (Xapian::docid did) |
| Skip forward to the specified docid. More... | |
Private Member Functions | |
| InMemoryPostList (const InMemoryDatabase *db, const InMemoryTerm &imterm, std::string_view term_) | |
Private Attributes | |
| std::vector< InMemoryPosting >::const_iterator | pos |
| std::vector< InMemoryPosting >::const_iterator | end |
| bool | started |
| InMemoryPositionList | mypositions |
| List of positions of the current term. More... | |
| Xapian::Internal::intrusive_ptr< const InMemoryDatabase > | db |
| Xapian::termcount | wdf_upper_bound |
Friends | |
| class | InMemoryDatabase |
Additional Inherited Members | |
Protected Member Functions inherited from LeafPostList | |
| LeafPostList (std::string_view term_) | |
| Only constructable as a base class for derived classes. More... | |
Protected Member Functions inherited from Xapian::Internal::PostList | |
| PostList () | |
| Only constructable as a base class for derived classes. More... | |
Protected Attributes inherited from LeafPostList | |
| const Xapian::Weight * | weight = nullptr |
| std::string | term |
| The term name for this postlist (empty for an alldocs postlist). More... | |
| Xapian::termcount | collfreq |
| The collection frequency of the term. More... | |
Protected Attributes inherited from Xapian::Internal::PostList | |
| Xapian::doccount | termfreq |
| Estimate of the number of documents this PostList will return. More... | |
A PostList in an inmemory database.
Definition at line 134 of file inmemory_database.h.
|
private |
Definition at line 114 of file inmemory_database.cc.
References InMemoryTerm::collection_freq, LeafPostList::collfreq, end, pos, InMemoryTerm::term_freq, Xapian::Internal::PostList::termfreq, and wdf_upper_bound.
|
virtual |
Return true if the current position is past the last entry in this list.
Implements Xapian::Internal::PostList.
Definition at line 177 of file inmemory_database.cc.
References db, end, InMemoryDatabase::is_closed(), pos, and InMemoryDatabase::throw_database_closed().
Referenced by get_docid(), next(), and skip_to().
|
virtual |
Return a string description of this object.
Implements Xapian::Internal::PostList.
Definition at line 197 of file inmemory_database.cc.
References Xapian::Internal::str(), LeafPostList::term, and Xapian::Internal::PostList::termfreq.
|
virtual |
Return the current docid.
Implements Xapian::Internal::PostList.
Definition at line 134 of file inmemory_database.cc.
References Assert, at_end(), db, InMemoryDatabase::is_closed(), started, and InMemoryDatabase::throw_database_closed().
Referenced by get_wdfdocmax().
|
virtual |
Get the bounds on the range of docids this PostList can return.
| [out] | first | Set to a lower bound on the docids that can be returned, or not changed if there's no known lower bound (other than 1). |
| [out] | last | Set to an upper bound on the docids that can be returned, or not changed if there's no known upper bound (other than the highest used docid). |
The default implementation (PostList::get_docid_range()) does nothing, which is suitable when there's no known lower or upper bound.
Reimplemented from Xapian::Internal::PostList.
Definition at line 184 of file inmemory_database.cc.
|
virtual |
Return the wdf for the document at the current position.
The default implementation throws Xapian::UnimplementedError.
Reimplemented from Xapian::Internal::PostList.
Definition at line 225 of file inmemory_database.cc.
References db, InMemoryDatabase::is_closed(), and InMemoryDatabase::throw_database_closed().
|
virtual |
Implements LeafPostList.
Definition at line 232 of file inmemory_database.cc.
References db, InMemoryDatabase::is_closed(), InMemoryDatabase::throw_database_closed(), and wdf_upper_bound.
| Xapian::termcount InMemoryPostList::get_wdfdocmax | ( | ) | const |
Definition at line 203 of file inmemory_database.cc.
References db, get_docid(), and InMemoryDatabase::get_wdfdocmax().
|
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.
| w_min | The minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore). |
Implements Xapian::Internal::PostList.
Definition at line 143 of file inmemory_database.cc.
References Assert, at_end(), db, end, InMemoryDatabase::is_closed(), pos, started, and InMemoryDatabase::throw_database_closed().
|
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::Internal::PostList.
Definition at line 217 of file inmemory_database.cc.
References db, InMemoryDatabase::is_closed(), pos, and InMemoryDatabase::throw_database_closed().
|
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::Internal::PostList.
Definition at line 209 of file inmemory_database.cc.
References InMemoryPositionList::assign(), db, InMemoryDatabase::is_closed(), mypositions, pos, and InMemoryDatabase::throw_database_closed().
|
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).
| w_min | The minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore). |
Implements Xapian::Internal::PostList.
Definition at line 157 of file inmemory_database.cc.
References Assert, at_end(), db, InMemoryDatabase::is_closed(), Xapian::Internal::PostList::next(), started, and InMemoryDatabase::throw_database_closed().
|
friend |
Definition at line 135 of file inmemory_database.h.
|
private |
Definition at line 147 of file inmemory_database.h.
Referenced by at_end(), get_docid(), get_wdf(), get_wdf_upper_bound(), get_wdfdocmax(), next(), open_position_list(), read_position_list(), and skip_to().
|
private |
Definition at line 139 of file inmemory_database.h.
Referenced by at_end(), get_docid_range(), InMemoryPostList(), and next().
|
private |
List of positions of the current term.
This list is populated when read_position_list() is called.
Definition at line 145 of file inmemory_database.h.
Referenced by read_position_list().
|
private |
Definition at line 138 of file inmemory_database.h.
Referenced by at_end(), get_docid_range(), InMemoryPostList(), next(), open_position_list(), and read_position_list().
|
private |
Definition at line 140 of file inmemory_database.h.
Referenced by get_docid(), get_docid_range(), next(), and skip_to().
|
private |
Definition at line 149 of file inmemory_database.h.
Referenced by get_wdf_upper_bound(), and InMemoryPostList().