22 #ifndef XAPIAN_INCLUDED_REMOTE_DATABASE_H
23 #define XAPIAN_INCLUDED_REMOTE_DATABASE_H
115 const std::string & body = std::string())
const;
133 bool writable,
int flags);
142 (void)
get_message(message, required_type, required_type);
192 bool sort_value_forward,
194 int percent_cutoff,
double weight_cutoff,
235 const string & tname)
const;
285 void set_metadata(
const string & key,
const string & value);
static Xapian::Query query(Xapian::Query::op op, const string &t1=string(), const string &t2=string(), const string &t3=string(), const string &t4=string(), const string &t5=string(), const string &t6=string(), const string &t7=string(), const string &t8=string(), const string &t9=string(), const string &t10=string())
database class declarations
Abstract base class for leaf postlists.
A postlist in a remote database.
RemoteConnection which owns its own fd(s).
RemoteDatabase is the baseclass for remote database implementations.
bool get_message_or_done(std::string &message, reply_type required_type) const
Xapian::doccount doccount
The remote document count, given at open.
bool locked() const
Return true if the database is open for writing.
RemoteDatabase(const RemoteDatabase &)
Don't allow copying.
bool update_stats(message_type msg_code=MSG_UPDATE, const std::string &body=std::string()) const
void operator=(const RemoteDatabase &)
Don't allow assignment.
void get_freqs(const string &term, Xapian::doccount *termfreq_ptr, Xapian::termcount *collfreq_ptr) const
Returns frequencies for a term.
Xapian::termcount get_unique_terms(Xapian::docid did) const
Get the number of unique term in document.
bool has_positional_info
Has positional information?
void do_close()
Close the socket.
void cancel()
Cancel pending modifications to the database.
void send_message(message_type type, const string &data) const
Send a message to the server.
void get_message(std::string &message, reply_type required_type) const
std::string get_value_upper_bound(Xapian::valueno slot) const
Get an upper bound on the values stored in the given value slot.
TermList * open_term_list(Xapian::docid did) const
Get remote termlist.
Xapian::termcount doclen_lbound
A lower bound on the smallest document length in this database.
Xapian::termcount get_doclength(Xapian::docid did) const
Get the length of a given document.
void set_metadata(const string &key, const string &value)
Set the metadata associated with a given key.
void delete_document(Xapian::docid did)
Delete a document in the database.
TermList * open_allterms(const string &prefix) const
Iterate all terms.
bool has_positions() const
Check whether this database contains any positional information.
Xapian::Document::Internal * open_document(Xapian::docid did, bool lazy) const
Get a remote document.
int get_backend_info(string *path) const
Get backend information about this database.
bool uncommitted_changes
True if there are (or may be) uncommitted changes.
Xapian::valueno mru_slot
The value slot for the most recently used value statistics.
Xapian::termcount get_doclength_upper_bound() const
Get an upper bound on the length of a document in this DB.
bool get_remote_stats(bool nowait, Xapian::Weight::Internal &out)
Get the stats from the remote server.
int pending_reply
Are we currently expecting a reply?
string get_metadata(const string &key) const
Get the metadata associated with a given key.
bool reopen()
Reopen the database to the latest available revision.
double timeout
The timeout value used in network communications, in seconds.
OwnedRemoteConnection link
The object which does the I/O.
void keep_alive()
Send a keep-alive message.
Xapian::doccount get_value_freq(Xapian::valueno slot) const
Return the frequency of a given value slot.
ValueStats mru_valstats
The most recently used value statistics.
Xapian::totallength get_total_length() const
Return the total length of all documents in this database.
Xapian::docid add_document(const Xapian::Document &doc)
Add a new document to the database.
void add_spelling(const std::string &, Xapian::termcount) const
Add a word to the spelling dictionary.
reply_type get_message(std::string &message, reply_type required_type, reply_type required_type2) const
Receive a message from the server.
void read_value_stats(Xapian::valueno slot) const
Read the value statistics for a value from a remote database.
std::string get_uuid() const
Get a UUID for the database.
Xapian::docid get_lastdocid() const
Get the last used docid.
LeafPostList * open_post_list(const string &tname) const
Open a posting list.
void remove_spelling(const std::string &, Xapian::termcount freqdec) const
Remove a word from the spelling dictionary.
string context
The context to return with any error messages.
void commit()
Commit pending modifications to the database.
void replace_document(Xapian::docid did, const Xapian::Document &doc)
Replace a given document in the database.
Xapian::termcount get_doclength_lower_bound() const
Get a lower bound on the length of a document in this DB.
string uuid
The UUID of the remote database.
Xapian::doccount read_post_list(const string &term, NetworkPostList &pl) const
Xapian::totallength total_length
The total length of all documents in this database.
std::string get_value_lower_bound(Xapian::valueno slot) const
Get a lower bound on the values stored in the given value slot.
Xapian::doccount get_doccount() const
Get the document count.
Xapian::docid lastdocid
The remote last docid, given at open.
Xapian::termcount get_wdf_upper_bound(const string &term) const
Get an upper bound on the wdf of term term.
void get_mset(Xapian::MSet &mset, const vector< Xapian::Internal::opt_intrusive_ptr< Xapian::MatchSpy >> &matchspies)
Get the MSet from the remote server.
bool get_posting(Xapian::docid &did, double &w, string &value)
void send_global_stats(Xapian::doccount first, Xapian::doccount maxitems, Xapian::doccount check_at_least, const Xapian::Weight::Internal &stats)
Send the global stats to the remote server.
bool term_exists(const string &tname) const
Check if term exists.
TermList * open_metadata_keylist(const std::string &prefix) const
Get remote metadata key list.
PositionList * open_position_list(Xapian::docid did, const string &tname) const
Open a position list for the given term in the given document.
void close()
Close the database.
Xapian::termcount doclen_ubound
An upper bound on the greatest document length in this database.
void set_query(const Xapian::Query &query, Xapian::termcount qlen, Xapian::doccount collapse_max, Xapian::valueno collapse_key, Xapian::Enquire::docid_order order, Xapian::valueno sort_key, Xapian::Enquire::Internal::sort_setting sort_by, bool sort_value_forward, double time_limit, int percent_cutoff, double weight_cutoff, const Xapian::Weight *wtscheme, const Xapian::RSet &omrset, const vector< Xapian::Internal::opt_intrusive_ptr< Xapian::MatchSpy >> &matchspies)
Set the query.
Base class for databases.
A document in the database, possibly plus modifications.
A handle representing a document in a Xapian database.
docid_order
Ordering of docids.
Class representing a list of search results.
Abstract base class for iterating term positions in a document.
Class representing a query.
Abstract base class for termlists.
Class to hold statistics for a given collection.
Abstract base class for weighting schemes.
The Xapian namespace contains public interfaces for the Xapian library.
unsigned XAPIAN_TERMCOUNT_BASE_TYPE termcount
A counts of terms.
unsigned valueno
The number for a value slot in a document.
unsigned XAPIAN_DOCID_BASE_TYPE doccount
A count of documents.
unsigned XAPIAN_DOCID_BASE_TYPE docid
A unique identifier for a document.
XAPIAN_TOTALLENGTH_TYPE totallength
The total length of all documents in a database.
RemoteConnection class used by the remote backend.
message_type
Message types (client -> server).
reply_type
Reply types (server -> client).
Class to hold statistics for a given slot.