A filofant installation can be stripped down to two different parts:
a) The indexing machine
b) The searchengine
a) The indexing machine is a set of appliactions which can disassemble emails and documents and insert the structure and the content of the objects in a higly performance optimized database structure. Additionally the indexed mails and attached documents are stored in the filesystem of the server for archiving reasons.
The filofant is able to index whole document repositories like SMB shares, FTP servers and webservers. The documents on this type of resources will only be indexed and not stored on the filofant.
There are multiple ways how to get the mails into the filofant, our preferred one is to set up an email box for the filofant (like firstname.lastname@example.org) and forward all emails you want to archive to this address. This is at the moment the only way to store mails in different access groups by forwarding to different mail addresses (eg. email@example.com and firstname.lastname@example.org).
b) The searchengine is a CGI script programmed in c++ which searches the above mentioned data structures and delivers the output to a webbrowser. It can be used in any webserver environment which allows cgi execution.
When using a special query language, all boolean operations on the different query parts can be used.