Xapian::Database Class Reference

This class is used to access a database, or a group of databases. More...

#include <database.h>

Inheritance diagram for Xapian::Database:

Inheritance graph
[legend]
List of all members.

Public Member Functions

void add_database (const Database &database)
 Add an existing database (or group of databases) to those accessed by this object.
 Database ()
 Create a Database with no databases in.
 Database (const std::string &path)
 Open a Database, automatically determining the database backend to use.
virtual ~Database ()
 Destroy this handle on the database.
 Database (const Database &other)
 Copying is allowed.
void operator= (const Database &other)
 Assignment is allowed.
void reopen ()
 Re-open the database.
virtual std::string get_description () const
 Introspection method.
PostingIterator postlist_begin (const std::string &tname) const
 An iterator pointing to the start of the postlist for a given term.
PostingIterator postlist_end (const std::string &) const
 Corresponding end iterator to postlist_begin().
TermIterator termlist_begin (Xapian::docid did) const
 An iterator pointing to the start of the termlist for a given document.
TermIterator termlist_end (Xapian::docid) const
 Corresponding end iterator to termlist_begin().
bool has_positions () const
 Does this database have any positional information?
PositionIterator positionlist_begin (Xapian::docid did, const std::string &tname) const
 An iterator pointing to the start of the position list for a given term in a given document.
PositionIterator positionlist_end (Xapian::docid, const std::string &) const
 Corresponding end iterator to positionlist_begin().
TermIterator allterms_begin () const
 An iterator which runs across all terms in the database.
TermIterator allterms_end () const
 Corresponding end iterator to allterms_begin().
TermIterator allterms_begin (const std::string &prefix) const
 An iterator which runs across all terms with a given prefix.
TermIterator allterms_end (const std::string &) const
 Corresponding end iterator to allterms_begin(prefix).
Xapian::doccount get_doccount () const
 Get the number of documents in the database.
Xapian::docid get_lastdocid () const
 Get the highest document id which has been used in the database.
Xapian::doclength get_avlength () const
 Get the average length of the documents in the database.
Xapian::doccount get_termfreq (const std::string &tname) const
 Get the number of documents in the database indexed by a given term.
bool term_exists (const std::string &tname) const
 Check if a given term exists in the database.
Xapian::termcount get_collection_freq (const std::string &tname) const
 Return the total number of occurrences of the given term.
Xapian::doclength get_doclength (Xapian::docid did) const
 Get the length of a document.
void keep_alive ()
 Send a "keep-alive" to remote databases to stop them timing out.
Xapian::Document get_document (Xapian::docid did) const
 Get a document from the database, given its document id.

Detailed Description

This class is used to access a database, or a group of databases.

For searching, this class is used in conjunction with an Enquire object.

Exceptions:
InvalidArgumentError will be thrown if an invalid argument is supplied, for example, an unknown database type.
DatabaseOpeningError may be thrown if the database cannot be opened (for example, a required file cannot be found).
DatabaseVersionError may be thrown if the database is in an unsupported format (for example, created by a newer version of Xapian which uses an incompatible format).


Constructor & Destructor Documentation

Xapian::Database::Database  ) 
 

Create a Database with no databases in.

Xapian::Database::Database const std::string &  path  )  [explicit]
 

Open a Database, automatically determining the database backend to use.

Parameters:
path directory that the database is stored in.

virtual Xapian::Database::~Database  )  [virtual]
 

Destroy this handle on the database.

If there are no copies of this object remaining, the database(s) will be closed.

Xapian::Database::Database const Database other  ) 
 

Copying is allowed.

The internals are reference counted, so copying is cheap.


Member Function Documentation

void Xapian::Database::add_database const Database database  ) 
 

Add an existing database (or group of databases) to those accessed by this object.

Parameters:
database the database(s) to add.

TermIterator Xapian::Database::allterms_begin const std::string &  prefix  )  const
 

An iterator which runs across all terms with a given prefix.

This is functionally similar to getting an iterator with allterms_begin() and then calling skip_to(prefix) on that iterator to move to the start of the prefix, but is more convenient (because it detects the end of the prefixed terms), and may be more efficient than simply calling skip_to() after opening the iterator, particularly for network databases.

Parameters:
prefix The prefix to restrict the returned terms to.

TermIterator Xapian::Database::allterms_begin  )  const
 

An iterator which runs across all terms in the database.

TermIterator Xapian::Database::allterms_end const std::string &   )  const [inline]
 

Corresponding end iterator to allterms_begin(prefix).

TermIterator Xapian::Database::allterms_end  )  const [inline]
 

Corresponding end iterator to allterms_begin().

Xapian::doclength Xapian::Database::get_avlength  )  const
 

Get the average length of the documents in the database.

Xapian::termcount Xapian::Database::get_collection_freq const std::string &  tname  )  const
 

Return the total number of occurrences of the given term.

This is the sum of the number of ocurrences of the term in each document it indexes: ie, the sum of the within document frequencies of the term.

Parameters:
tname The term whose collection frequency is being requested.

virtual std::string Xapian::Database::get_description  )  const [virtual]
 

Introspection method.

Returns:
A string describing this object.

Reimplemented in Xapian::WritableDatabase.

Xapian::doccount Xapian::Database::get_doccount  )  const
 

Get the number of documents in the database.

Xapian::doclength Xapian::Database::get_doclength Xapian::docid  did  )  const
 

Get the length of a document.

Xapian::Document Xapian::Database::get_document Xapian::docid  did  )  const
 

Get a document from the database, given its document id.

This method returns a Xapian::Document object which provides the information about a document.

Parameters:
did The document id for which to retrieve the data.
Returns:
A Xapian::Document object containing the document data
Exceptions:
Xapian::DocNotFoundError The document specified could not be found in the database.

Xapian::docid Xapian::Database::get_lastdocid  )  const
 

Get the highest document id which has been used in the database.

Xapian::doccount Xapian::Database::get_termfreq const std::string &  tname  )  const
 

Get the number of documents in the database indexed by a given term.

bool Xapian::Database::has_positions  )  const
 

Does this database have any positional information?

void Xapian::Database::keep_alive  ) 
 

Send a "keep-alive" to remote databases to stop them timing out.

void Xapian::Database::operator= const Database other  ) 
 

Assignment is allowed.

The internals are reference counted, so assignment is cheap.

PositionIterator Xapian::Database::positionlist_begin Xapian::docid  did,
const std::string &  tname
const
 

An iterator pointing to the start of the position list for a given term in a given document.

PositionIterator Xapian::Database::positionlist_end Xapian::docid  ,
const std::string & 
const [inline]
 

Corresponding end iterator to positionlist_begin().

PostingIterator Xapian::Database::postlist_begin const std::string &  tname  )  const
 

An iterator pointing to the start of the postlist for a given term.

If the term name is the empty string, the iterator returned will list all the documents in the database. Such an iterator will always return a WDF value of 1, since there is no obvious meaning for this quantity in this case.

PostingIterator Xapian::Database::postlist_end const std::string &   )  const [inline]
 

Corresponding end iterator to postlist_begin().

void Xapian::Database::reopen  ) 
 

Re-open the database.

This re-opens the database(s) to the latest available version(s). It can be used either to make sure the latest results are returned, or to recover from a Xapian::DatabaseModifiedError.

bool Xapian::Database::term_exists const std::string &  tname  )  const
 

Check if a given term exists in the database.

Return true if and only if the term exists in the database. This is the same as (get_termfreq(tname) != 0), but will often be more efficient.

TermIterator Xapian::Database::termlist_begin Xapian::docid  did  )  const
 

An iterator pointing to the start of the termlist for a given document.

TermIterator Xapian::Database::termlist_end Xapian::docid   )  const [inline]
 

Corresponding end iterator to termlist_begin().


The documentation for this class was generated from the following file:
Documentation for Xapian (version 1.0.1).
Generated on 11 Jun 2007 by Doxygen 1.4.6.