This documentation was automatically generated, and corresponds to version
0.5.5 of Xapian.
Directory structure index
Directory structure
ROOT
Top level directory.
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).
bindings
This directory contains everything needed to create libxapian bindings
for languages other than C++.
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.
include/om
This directory contains the externally visible header files which are
needed to link applications against Xapian.
Internal header files are kept in the "common" directory.
indexer
This directory contains the Xapian indexer framework.
indexer/indexgraph
This directory contains the Xapian indexer framework.
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.
languages/danish
Code for processing danish, such as a stemming algorithm for normalising
danish words.
languages/dutch
Code for processing dutch, such as a stemming algorithm for normalising
dutch words.
languages/english
Code for processing english, such as an updated version of the porter
stemming algorithm for normalising english words.
languages/french
Code for processing french, such as a stemming algorithm for normalising
french words.
languages/german
Code for processing german, such as a stemming algorithm for normalising
german words.
languages/italian
Code for processing italian, such as a stemming algorithm for normalising
italian words.
languages/norwegian
Code for processing norwegian, such as a stemming algorithm for normalising
norwegian words.
languages/porter
Code for the original porter stemming algorithm, without updates in the
english stemmer.
languages/portuguese
Code for processing portuguese, such as a stemming algorithm for normalising
portuguese words.
languages/spanish
Code for processing spanish, such as a stemming algorithm for normalising
spanish words.
languages/swedish
Code for processing swedish, such as a stemming algorithm for normalising
swedish words.
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 04 December 2002.
Command line used to generate this documentation:
./mkdoc.pl 0.5.5 .. code_structure.html