Indexing is the process by which the set of documents is analyzed and the data entered into the database. Recoll indexing is normally incremental: documents will only be processed if they have been modified. On the first execution, of course, all documents will need processing. A full index build can be forced later by specifying an option to the indexing command (recollindex -z).
Recoll indexing can be performed with two different methods:
Periodic indexing: indexing takes place at discrete times, by executing the recollindex command. The typical usage is to have a nightly indexing run programmed into your cron file.
Real time indexing: indexing takes place as soon as a file is created or changed. recollindex runs as a daemon and uses a file system alteration monitor such as Fam, Gamin or inotify do detect file changes. Monitoring a big directory tree can consume significant system resources.
The choice between the two methods is mostly a matter of preference, and they can be combined by setting up multiple indexes (ie: use periodic indexing on a big documentation directory, and real time indexing on a small home directory). Monitoring a big file system tree can consume significant system resources, for dubious gains.
Recoll knows about quite a few different document types. The parameters for document types recognition and processing are set in configuration files Most file types, like HTML or word processing files, only hold one document. Some file types, like mail folder files can hold many individually indexed documents.
Recoll indexing processes plain text, HTML, openoffice and e-mail files internally. Other types (ie: postscript, pdf, ms-word, rtf) need external applications for preprocessing. The list is in the installation section.
Without further configuration, Recoll will index all appropriate files from your home directory, with a reasonable set of defaults.
In some cases, it may be interesting to index different areas of the file system to separate databases. You can do this by using multiple configuration directories, each indexing a file system area to a specific database. See the section about using multiple databases for more information on multiple configurations and indexes.