This documentation was automatically generated, and corresponds to version 0.6.5 of Xapian.

Directory structure index


Directory structure

autoconf

Directory containing m4 macros needed for building Xapian configuration scripts. These macros are m4_include-d by acinclude.m4 - this directory is just a convenient way to keep them in separate files and up to date.

backends

This directory contains a subdirectory for each of the available database backends. Each backend corresponds to a different underlying file structure. For example, the DA backend corresponds to (old-style) Direct Access databases, the inmemory backend holds its databases entirely in RAM, and the quartz backend is a fully featured disk based backend.

The directory also contains the implementation of DatabaseBuilder which creates and opens instances of each type of database, encapsulating the differences between backends.

backends/inmemory

This backend stores a database entirely in memory.

When the database is opened, the contents are generated by indexing from a set of files, and when the database is closed these indexed contents are lost.

This is useful for searching through relatively small amounts of data (such as a single large file) which hasn't previously been indexed.

Together with access methods for dumping the contents of the index, it will also provide a useful method of performing indexing efficiently: data would be indexed to an InMemory database, which would periodically be flushed into a database held in permanent storage.

backends/multi

This directory contains the MultiDatabase backend, which enables searches to be performed across several databases. Opening this database involves opening each of the sub-databases and merging them together.

Searches are performed across the sub-databases via MultiPostList and MultiTermList objects, which represent merged sets of postlist and termlist objects.

This is probably not the most efficient way to perform these searches, but works well enough for the moment. It is expected that the implementation of distributed searching will render this largely obselete.

There is also considerable scope for further optimisation of this backend, but this is not considered a priority since it is not expected to persist in its current form.

backends/muscat36

This directory contains the Muscat36 backend, used to access old-style Muscat 3.6 databases.

This backend only supports reading from the database: databases can be created with the old Muscat 3.6 software. We do not plan to implement writing to these databases, since they are a legacy format and do not have the ability to represent several of the data structures we require for some of our new features.

backends/net

This directory contains the NetworkDatabase backend, which enables searches to be performed across databases on remote machines. Opening this database involves opening a communications channel with a remote database.

NetworkDatabase objects are used with NetworkMatch objects.

backends/quartz

This backend uses a custom written Btree management system to store posting lists and termlists. This is planned to be a highly efficient database, using compression to store the postlists, and supporting the full range of indexing functionality (sessions / transactions / etc).

common

This directory contains header files which are used in various places within the Xapian library code. It does not contain header files which are externally visible: these are kept in the "include" directory.

docs

This directory contains documentation, and scripts to automatically generate further documentation from the source code. If you have the appropriate packages installed (currently, this means Perl), these scripts will be run by make.

languages

Utilities for performing processing of text in various different languages live within this directory hierarchy.

These utilities include: stemming algorithms, character set normalisation, etc.

m4

Directory containing m4 macros to be installed with Xapian. This currently just contains the macro for finding the parameters for linking and including headers for an installed version.

matcher

The code for performing the best match algorithm lives here. This is the heart of the Xapian system, and is the code which calculates relevance rankings for the documents in the collection for a given query.

The query expansion (relevance feedback) code also lives here.

net

The code implementing the network protocols lives here.

netprogs

The programs needed for remote searching operations.

tests

This directory contains various test programs which use various parts of the Xapian software.

At some future stage, these will be replaced by test harnesses designed to ensure that all parts of the software are working, to be run after building on each new system.

testsuite

This contains the test suite engine, which is linked with by most of the C++ test programs to perform a set of tests.
Generated on 10 April 2003.

Command line used to generate this documentation:
./mkdoc.pl 0.6.5 .. code_structure.html