# Xapian Namespace Reference

The Xapian namespace contains public interfaces for the Xapian library. More...

## Classes

class | Error
| All exceptions thrown by Xapian are subclasses of Xapian::Error. More...
class | LogicError
| The base class for exceptions indicating errors in the program logic. More...
class | RuntimeError
| The base class for exceptions indicating errors only detectable at runtime. More...
class | AssertionError
| AssertionError is thrown if a logical assertion inside Xapian fails. More...
class | InvalidArgumentError
| InvalidArgumentError indicates an invalid parameter value was passed to the API. More...
class | InvalidOperationError
| InvalidOperationError indicates the API was used in an invalid way. More...
class | UnimplementedError
| UnimplementedError indicates an attempt to use an unimplemented feature. More...
class | DatabaseError
| DatabaseError indicates some sort of database related error. More...
class | DatabaseCorruptError
| DatabaseCorruptError indicates database corruption was detected. More...
class | DatabaseCreateError
| DatabaseCreateError indicates a failure to create a database. More...
class | DatabaseLockError
| DatabaseLockError indicates failure to lock a database. More...
class | DatabaseModifiedError
| DatabaseModifiedError indicates a database was modified. More...
class | DatabaseOpeningError
| DatabaseOpeningError indicates failure to open a database. More...
class | DatabaseVersionError
| DatabaseVersionError indicates that a database is in an unsupported format. More...
class | DocNotFoundError
| Indicates an attempt to access a document not present in the database. More...
class | FeatureUnavailableError
| Indicates an attempt to use a feature which is unavailable. More...
class | InternalError
| InternalError indicates a runtime problem of some sort. More...
class | NetworkError
| Indicates a problem communicating with a remote database. More...
class | NetworkTimeoutError
| Indicates a timeout expired while communicating with a remote database. More...
class | QueryParserError
| Indicates a query string can't be parsed. More...
class | RangeError
| RangeError indicates an attempt to access outside the bounds of a container. More...
class | Database
| This class is used to access a database, or a group of databases. More...
class | WritableDatabase
| This class provides read/write access to a database. More...
class | Document
| A handle representing a document in a Xapian database. More...
class | MSet
| A match set (MSet). More...
class | MSetIterator
| An iterator pointing to items in an MSet. More...
class | ESet
| Class representing an ordered set of expand terms (an ESet). More...
class | ESetIterator
| Iterate through terms in the ESet. More...
class | RSet
| A relevance set (R-Set). More...
class | MatchDecider
| Base class for matcher decision functor. More...
class | Enquire
| This class provides an interface to the information retrieval system for the purpose of searching. More...
class | Weight
| Abstract base class for weighting schemes. More...
class | BoolWeight
| Boolean weighting scheme (everything gets 0). More...
class | BM25Weight
| BM25 weighting scheme. More...
class | TradWeight
| Traditional probabilistic weighting scheme. More...
class | ErrorHandler
| Decide if a Xapian::Error exception should be ignored. More...
class | ExpandDecider
| Virtual base class for expand decider functor. More...
class | ExpandDeciderAnd
| ExpandDecider subclass which rejects terms using two ExpandDeciders. More...
class | ExpandDeciderFilterTerms
| ExpandDecider subclass which rejects terms in a specified list. More...
class | PositionIterator
| An iterator pointing to items in a list of positions. More...
class | PostingIterator
| An iterator pointing to items in a list of postings. More...
class | Query
| Class representing a query. More...
class | Stopper
| Base class for stop-word decision functor. More...
class | SimpleStopper
| Simple implementation of Stopper class - this will suit most users. More...
struct | ValueRangeProcessor
| Base class for value range processors. More...
class | StringValueRangeProcessor
| Handle a string range. More...
class | DateValueRangeProcessor
| Handle a date range. More...
class | NumberValueRangeProcessor
| Handle a number range. More...
class | QueryParser
| Build a Xapian::Query object from a user query string. More...
class | Sorter
| Virtual base class for sorter functor. More...
class | MultiValueSorter
| Sorter subclass which sorts by a several values. More...
class | Stem
| Class representing a stemming algorithm. More...
class | TermGenerator
| Parses a piece of text and generate terms. More...
class | TermIterator
| An iterator pointing to items in a list of terms. More...
class | Utf8Iterator
| An iterator which returns Unicode character values from a UTF-8 encoded string. More...
class | ValueIterator
| An iterator pointing to values associated with a document. More...

## Namespaces

namespace | Auto
| Database factory functions which determine the database type automatically.

namespace | Flint
| Database factory functions for the flint backend.

namespace | InMemory
| Database factory functions for the inmemory backend.

namespace | Quartz
| Database factory functions for the quartz backend.

namespace | Remote
| Database factory functions for the remote backend.

namespace | Unicode
| Functions associated with handling Unicode characters.

## Typedefs

typedef unsigned | doccount
| A count of documents.
typedef int | doccount_diff
| A signed difference between two counts of documents.
typedef unsigned | docid
| A unique identifier for a document.
typedef double | doclength
| A normalised document length.
typedef int | percent
| The percentage score for a document in an MSet.
typedef unsigned | termcount
| A counts of terms.
typedef int | termcount_diff
| A signed difference between two counts of terms.
typedef unsigned | termpos
| A term position within a document or query.
typedef int | termpos_diff
| A signed difference between two term positions.
typedef unsigned | timeout
| A timeout value in milliseconds.
typedef unsigned | valueno
| The number for a value slot in a document.
typedef int | valueno_diff
| A signed difference between two value slot numbers.
typedef double | weight
| The weight of a document or term.

## Functions

bool | operator== (const MSetIterator &a, const MSetIterator &b)
| Equality test for MSetIterator objects.
bool | operator!= (const MSetIterator &a, const MSetIterator &b)
| Inequality test for MSetIterator objects.
bool | operator== (const ESetIterator &a, const ESetIterator &b)
| Equality test for ESetIterator objects.
bool | operator!= (const ESetIterator &a, const ESetIterator &b)
| Inequality test for ESetIterator objects.
bool | operator== (const PositionIterator &a, const PositionIterator &b)
| Test equality of two PositionIterators.
bool | operator!= (const PositionIterator &a, const PositionIterator &b)
| Test inequality of two PositionIterators.
bool | operator== (const PostingIterator &a, const PostingIterator &b)
| Test equality of two PostingIterators.
bool | operator!= (const PostingIterator &a, const PostingIterator &b)
| Test inequality of two PostingIterators.
std::string | sortable_serialise (double value)
| Convert a floating point number to a string, preserving sort order.
double | sortable_unserialise (const std::string &value)
| Convert a string encoded using sortable_serialise back to a floating point number.
bool | operator== (const TermIterator &a, const TermIterator &b)
| Equality test for TermIterator objects.
bool | operator!= (const TermIterator &a, const TermIterator &b)
| Inequality test for TermIterator objects.
bool | operator== (const ValueIterator &a, const ValueIterator &b)
| Equality test for ValueIterator objects.
bool | operator!= (const ValueIterator &a, const ValueIterator &b)
| Inequality test for ValueIterator objects.
const char * | version_string ()
| Report the version string of the library which the program is linked with.
const char * | xapian_version_string ()
| For compatibility with Xapian 0.9.5 and earlier.
int | major_version ()
| Report the major version of the library which the program is linked with.
int | xapian_major_version ()
| For compatibility with Xapian 0.9.5 and earlier.
int | minor_version ()
| Report the minor version of the library which the program is linked with.
int | xapian_minor_version ()
| For compatibility with Xapian 0.9.5 and earlier.
int | revision ()
| Report the revision of the library which the program is linked with.
int | xapian_revision ()
| For compatibility with Xapian 0.9.5 and earlier.

## Variables

const int | DB_CREATE_OR_OPEN = 1
| Open for read/write; create if no db exists.
const int | DB_CREATE = 2
| Create a new database; fail if db exists.
const int | DB_CREATE_OR_OVERWRITE = 3
| Overwrite existing db; create if none exists.
const int | DB_OPEN = 4
| Open for read/write; fail if no db exists.
const valueno | BAD_VALUENO = static_cast<valueno>(-1)
| Reserved value to indicate "no valueno".

## Detailed Description

The Xapian namespace contains public interfaces for the Xapian library.

## Typedef Documentation

typedef unsigned Xapian::doccount

A count of documents.

This is used to hold values such as the number of documents in a database and the frequency of a term in the database.

typedef int Xapian::doccount_diff

A signed difference between two counts of documents.

This is used by the Xapian classes which are STL containers of documents for "difference_type".

typedef unsigned Xapian::docid

A unique identifier for a document.

Docid 0 is invalid, providing an "out of range" value which can be used to mean "not a valid document".

typedef double Xapian::doclength

A normalised document length.

The normalised document length is the document length divided by the average document length in the database.

typedef int Xapian::percent

The percentage score for a document in an MSet.

typedef unsigned Xapian::termcount

A counts of terms.

This is used to hold values such as the Within Document Frequency (wdf).

typedef int Xapian::termcount_diff

A signed difference between two counts of terms.

This is used by the Xapian classes which are STL containers of terms for "difference_type".

typedef unsigned Xapian::termpos

A term position within a document or query.

typedef int Xapian::termpos_diff

A signed difference between two term positions.

This is used by the Xapian classes which are STL containers of positions for "difference_type".

typedef unsigned Xapian::timeout

A timeout value in milliseconds.

There are 1000 milliseconds in a second, so for example, to set a timeout of 5 seconds use 5000.

typedef unsigned Xapian::valueno

The number for a value slot in a document.

Any value slot number except Xapian::BAD_VALUENO is valid.

typedef int Xapian::valueno_diff

A signed difference between two value slot numbers.

This is used by the Xapian classes which are STL containers of values for "difference_type".

typedef double Xapian::weight

The weight of a document or term.

## Function Documentation

int Xapian::major_version | ( |  | ) |

Report the major version of the library which the program is linked with.

This may be different to the version compiled against (given by XAPIAN_MAJOR_VERSION) if shared libraries are being used.

int Xapian::minor_version | ( |  | ) |

Report the minor version of the library which the program is linked with.

This may be different to the version compiled against (given by XAPIAN_MINOR_VERSION) if shared libraries are being used.

bool Xapian::operator!= | ( | const ValueIterator & | a,
|  | const ValueIterator & | b |
| ) |  |  | `[inline]`

Inequality test for ValueIterator objects.

bool Xapian::operator!= | ( | const TermIterator & | a,
|  | const TermIterator & | b |
| ) |  |  | `[inline]`

Inequality test for TermIterator objects.

bool Xapian::operator!= | ( | const PostingIterator & | a,
|  | const PostingIterator & | b |
| ) |  |  | `[inline]`

Test inequality of two PostingIterators.

bool Xapian::operator!= | ( | const PositionIterator & | a,
|  | const PositionIterator & | b |
| ) |  |  | `[inline]`

Test inequality of two PositionIterators.

bool Xapian::operator!= | ( | const ESetIterator & | a,
|  | const ESetIterator & | b |
| ) |  |  | `[inline]`

Inequality test for ESetIterator objects.

bool Xapian::operator!= | ( | const MSetIterator & | a,
|  | const MSetIterator & | b |
| ) |  |  | `[inline]`

Inequality test for MSetIterator objects.

bool Xapian::operator== | ( | const ValueIterator & | a,
|  | const ValueIterator & | b |
| ) |  |  | `[inline]`

Equality test for ValueIterator objects.

bool Xapian::operator== | ( | const TermIterator & | a,
|  | const TermIterator & | b |
| ) |  |  | `[inline]`

Equality test for TermIterator objects.

bool Xapian::operator== | ( | const PostingIterator & | a,
|  | const PostingIterator & | b |
| ) |  |  | `[inline]`

Test equality of two PostingIterators.

bool Xapian::operator== | ( | const PositionIterator & | a,
|  | const PositionIterator & | b |
| ) |  |  | `[inline]`

Test equality of two PositionIterators.

bool Xapian::operator== | ( | const ESetIterator & | a,
|  | const ESetIterator & | b |
| ) |  |  | `[inline]`

Equality test for ESetIterator objects.

bool Xapian::operator== | ( | const MSetIterator & | a,
|  | const MSetIterator & | b |
| ) |  |  | `[inline]`

Equality test for MSetIterator objects.

int Xapian::revision | ( |  | ) |

Report the revision of the library which the program is linked with.

This may be different to the version compiled against (given by XAPIAN_REVISION) if shared libraries are being used.

std::string Xapian::sortable_serialise | ( | double | value | ) |

Convert a floating point number to a string, preserving sort order.

This method converts a floating point number to a string, suitable for using as a value for numeric range restriction, or for use as a sort key.

The conversion is platform independent.

The conversion attempts to ensure that, for any pair of values supplied to the conversion algorithm, the result of comparing the original values (with a numeric comparison operator) will be the same as the result of comparing the resulting values (with a string comparison operator). On platforms which represent doubles with the precisions specified by IEEE_754, this will be the case: if the representation of doubles is more precise, it is possible that two very close doubles will be mapped to the same string, so will compare equal.

Note also that both zero and -zero will be converted to the same representation: since these compare equal, this satisfies the comparison constraint, but it's worth knowing this if you wish to use the encoding in some situation where this distinction matters.

Handling of NaN isn't (currently) guaranteed to be sensible.

double Xapian::sortable_unserialise | ( | const std::string & | value | ) |

Convert a string encoded using sortable_serialise back to a floating point number.

This expects the input to be a string produced by sortable_serialise(). If the input is not such a string, the value returned is undefined (but no error will be thrown).

The result of the conversion will be exactly the value which was supplied to sortable_serialise() when making the string on platforms which represent doubles with the precisions specified by IEEE_754, but may be a different (nearby) value on other platforms.

const char* Xapian::version_string | ( |  | ) |

Report the version string of the library which the program is linked with.

This may be different to the version compiled against (given by XAPIAN_VERSION) if shared libraries are being used.

int Xapian::xapian_major_version | ( |  | ) |

For compatibility with Xapian 0.9.5 and earlier.

Deprecated:
  This function is now deprecated, use Xapian::major_version() instead.

int Xapian::xapian_minor_version | ( |  | ) |

For compatibility with Xapian 0.9.5 and earlier.

Deprecated:
  This function is now deprecated, use Xapian::minor_version() instead.

int Xapian::xapian_revision | ( |  | ) |

For compatibility with Xapian 0.9.5 and earlier.

Deprecated:
  This function is now deprecated, use Xapian::revision() instead.

const char* Xapian::xapian_version_string | ( |  | ) |

For compatibility with Xapian 0.9.5 and earlier.

Deprecated:
  This function is now deprecated, use Xapian::version_string() instead.

## Variable Documentation

const valueno Xapian::BAD_VALUENO = static_cast<valueno>(-1)

Reserved value to indicate "no valueno".

const int Xapian::DB_CREATE = 2

Create a new database; fail if db exists.

const int Xapian::DB_CREATE_OR_OPEN = 1

Open for read/write; create if no db exists.

const int Xapian::DB_CREATE_OR_OVERWRITE = 3

Overwrite existing db; create if none exists.

const int Xapian::DB_OPEN = 4

Open for read/write; fail if no db exists.