25 #ifndef OM_HGUARD_INMEMORY_DATABASE_H 26 #define OM_HGUARD_INMEMORY_DATABASE_H 55 auto p = std::lower_bound(positions.begin(), positions.end(), pos);
56 Assert(p == positions.end() || *p != pos);
57 positions.insert(p, pos);
69 auto p = std::lower_bound(positions.begin(), positions.end(), pos);
70 Assert(p == positions.end() || *p != pos);
71 positions.insert(p, pos);
99 vector<InMemoryPosting>
docs;
126 void add_posting(
const std::string& tname,
140 vector<InMemoryPosting>::const_iterator
pos;
141 vector<InMemoryPosting>::const_iterator
end;
155 const InMemoryTerm & imterm,
const std::string & term_);
176 string get_description()
const;
212 string get_description()
const;
220 vector<InMemoryTermEntry>::const_iterator
pos;
221 vector<InMemoryTermEntry>::const_iterator
end;
240 string get_termname()
const;
245 TermList * skip_to(
const std::string & term);
284 void make_term(
const string & tname);
292 const map<Xapian::valueno, string>& values_);
295 const string & tname,
299 bool use_position =
true);
340 void get_freqs(
const string & term,
346 bool term_exists(
const string & tname)
const;
347 bool has_positions()
const;
349 LeafPostList * open_post_list(
const string & tname)
const;
354 std::string get_metadata(
const std::string & key)
const;
355 TermList * open_metadata_keylist(
const std::string &prefix)
const;
356 void set_metadata(
const std::string & key,
const std::string & value);
359 const string & tname)
const;
361 const string & tname)
const;
362 TermList * open_allterms(
const string & prefix)
const;
367 if (path) *path = string();
Xapian::Internal::intrusive_ptr< const InMemoryDatabase > db
PositionList from an InMemory DB or a Document object.
vector< InMemoryPosting >::const_iterator end
vector< InMemoryTermEntry >::const_iterator end
Define the XAPIAN_NORETURN macro.
virtual void replace_document(Xapian::docid did, const Xapian::Document &document)
Replace a given document in the database.
Abstract base class for postlists.
vector< Xapian::termpos > positions
Xapian::docid did
The document ID of the document in that database.
A database held entirely in memory.
Xapian::termcount wdf_upper_bound
Base class for databases.
int get_backend_info(string *path) const
Get backend information about this database.
friend class InMemoryAllDocsPostList
XAPIAN_TOTALLENGTH_TYPE totallength
The total length of all documents in a database.
TermList * open_term_list() const
Open a term list.
Xapian::totallength totlen
virtual Xapian::termcount get_wdf_upper_bound(const std::string &term) const
Get an upper bound on the wdf of term term.
vector< Xapian::termcount > doclengths
A document in the database, possibly plus modifications.
Abstract base class for termlists.
vector< InMemoryTermEntry >::const_iterator pos
Abstract base class for leaf postlists.
static void throw_database_closed()
Abstract base class for leaf postlists.
vector< Xapian::termpos > positions
Xapian::termcount document_length
virtual void delete_document(Xapian::docid did)
Delete a document in the database.
PositionList * open_position_list(Xapian::docid did, const string &tname) const
Open a position list for the given term in the given document.
vector< InMemoryPosting > docs
unsigned XAPIAN_TERMCOUNT_BASE_TYPE termcount
A counts of terms.
Class representing a document and the terms indexing it.
InMemoryPositionList mypositions
List of positions of the current term.
friend class InMemoryDatabase
InMemoryDatabase::open_document() needs to call our private constructor.
vector< InMemoryTermEntry > terms
Xapian::termcount collection_freq
InMemoryDoc(bool is_valid_)
std::map< string, string > metadata
A PostList in an inmemory database.
void add_position(Xapian::termpos pos)
A position list in a inmemory database.
std::map< Xapian::valueno, ValueStats > valuestats
Class for iterating over term positions.
Xapian::Internal::intrusive_ptr< const InMemoryDatabase > db
vector< std::map< Xapian::valueno, string > > valuelists
Xapian::doccount termfreq
A document read from a InMemoryDatabase.
Xapian::termcount get_unique_terms(Xapian::docid did) const
Get the number of unique term in document.
void operator=(const InMemoryDocument &)
Don't allow assignment.
vector< std::string > doclists
unsigned XAPIAN_DOCID_BASE_TYPE doccount
A count of documents.
Xapian::termcount positionlist_count(Xapian::docid did, const string &tname) const
map< string, InMemoryTerm > postlists
bool locked() const
Return true if the database is open for writing.
Xapian::Internal::intrusive_ptr< const InMemoryDatabase > db
Collates statistics while calculating term weight in an ESet.
unsigned valueno
The number for a value slot in a document.
unsigned XAPIAN_TERMPOS_BASE_TYPE termpos
A term position within a document or query.
Xapian::termcount get_doclength(Xapian::docid did) const
Get the length of a given document.
Abstract base class for termlists.
vector< InMemoryPosting >::const_iterator pos
void add_position(Xapian::termpos pos)
Various assertion macros.
unsigned XAPIAN_DOCID_BASE_TYPE docid
A unique identifier for a document.
Abstract base class for iterating term positions in a document.
API for working with documents.
A handle representing a document in a Xapian database.
A PostList over all docs in an inmemory database.
Xapian::termcount term_freq
vector< InMemoryDoc > termlists