# 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:

[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.
| Database (Internal *internal)
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().
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().
Xapian::doccount | get_doccount () const
| Get the number of documents in the database.
Xapian::docid | get_lastdocid () const
| Get the last used document id of 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.

## Public Attributes

std::vector< Xapian::Internal::RefCntPtr< Internal > > | internal
| Reference counted internals.

## 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).

## Constructor & Destructor Documentation

Xapian::Database::Database | ( |  | ) |

| Create a Database with no databases in.

Xapian::Database::Database | ( | const std::string & | path | ) |

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 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

| An iterator which runs across all terms in the database.

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: 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 last used document id of 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.

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.

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().

## Member Data Documentation

std::vector<Xapian::Internal::RefCntPtr<Internal> > Xapian::Database::internal

| Reference counted internals.

The documentation for this class was generated from the following file:

- include/xapian/database.h