25 #ifndef OM_HGUARD_GLASS_POSTLIST_H 26 #define OM_HGUARD_GLASS_POSTLIST_H 46 class PostlistChunkReader;
47 class PostlistChunkWriter;
110 bool next_in_chunk();
150 bool move_forward_in_chunk_to_at_least(
Xapian::docid desired_did);
162 bool keep_reference);
167 LeafPostList * open_nearby_postlist(
const std::string & term_)
const;
210 bool at_end()
const {
return is_at_end; }
215 std::string get_description()
const;
218 static void read_number_of_entries(
const char ** posptr,
242 :
GlassTable(
"postlist", path_ +
"/postlist.", readonly_),
247 :
GlassTable(
"postlist", fd, offset_, readonly_),
258 void merge_changes(
const string& term,
295 void get_freqs(
const std::string & term,
Xapian::termcount get_wdf() const
Returns the Within Document Frequency of the term in the current document.
Abstract base class for postlists.
static string make_key(const string &term)
Compose a key from a termname.
XAPIAN_REVISION_TYPE rev
Revision number of a database.
A position list in a glass database.
const char * pos
Position of iteration through current chunk.
Class managing a Btree table in a Glass database.
uint4 glass_revision_number_t
The revision number of a glass database.
AutoPtr< GlassCursor > cursor
Cursor pointing to current chunk of postlist.
GlassPostListTable(const string &path_, bool readonly_)
Create a new table object.
Class for storing the changes in frequencies for a term.
Definitions, types, etc for use inside glass.
Abstract base class for leaf postlists.
A position list in a glass database.
Xapian::doccount number_of_entries
The number of entries in the posting list.
AutoPtr< GlassPostList > doclen_pl
PostList for looking up document lengths.
bool at_end() const
Return true if and only if we're off the end of the list.
bool is_at_end
Whether we've run off the end of the list yet.
Xapian::doccount get_termfreq() const
Returns number of docs indexed by this term.
PostlistChunkWriter is a wrapper which acts roughly as an output iterator on a postlist chunk...
Abstract base class for leaf postlists.
Xapian::docid first_did_in_chunk
The first document id in this chunk.
unsigned XAPIAN_TERMCOUNT_BASE_TYPE termcount
A counts of terms.
bool is_last_chunk
True if this is the last chunk.
static string make_key(const string &term, Xapian::docid did)
Compose a key from a termname and docid.
const char * end
Pointer to byte after end of current chunk.
Xapian::docid last_did_in_chunk
The last document id in this chunk.
API for working with Xapian databases.
A postlist in a glass database.
A backend designed for efficient indexing and retrieval, using compressed posting lists and a btree s...
PostlistChunkReader is essentially an iterator wrapper around a postlist chunk.
A cursor pointing to a position in a Btree table, for reading several entries in order, or finding approximate matches.
void open(int flags_, const RootInfo &root_info, glass_revision_number_t rev)
Open the btree.
void open(int flags_, const RootInfo &root_info, glass_revision_number_t rev)
Xapian::Internal::intrusive_ptr< const GlassDatabase > this_db
The database we are searching.
bool term_exists(const string &term) const
unsigned XAPIAN_DOCID_BASE_TYPE doccount
A count of documents.
bool have_started
Whether we've started reading the list yet.
std::string pack_glass_postlist_key(const std::string &term)
Xapian::docid did
Document id we're currently at.
Xapian::termcount wdf
The wdf of the current document.
Various assertion macros.
Xapian::docid get_docid() const
Returns the current docid.
GlassPostListTable(int fd, off_t offset_, bool readonly_)
unsigned XAPIAN_DOCID_BASE_TYPE docid
A unique identifier for a document.
Inverter class which "inverts the file".
Abstract base class for iterating term positions in a document.
GlassPositionList positionlist
The position list object for this posting list.
Xapian::termcount wdf_upper_bound
Upper bound on wdf for this postlist.
string make_key(Xapian::docid did)
Wrapper around standard unique_ptr template.