An indexed full text search

Operating System
FreeBSD 9.x
FreeBSD 10.x

MMSearch is a high-speed mail indexing and search application for CommuniGate Pro server. It is based on SQLite FTS module and uses XIMSS protocol to communicate with CommuniGate Pro.

The search is integrated into the Pronto HTML5 and Crystal web skins.

Installation instructions:

1) copy the files "mmindex" and "mmsearch.cfg" into the CGPro base directory:

  cp mmindex /var/CommuniGate/
  cp mmsearch.cfg /var/CommuniGate/

2) copy the file "mmsearch" into the CGPro cgi directory:

  cp mmsearch /var/CommuniGate/cgi/

3) define the postmaster user credentials and list of domains and users which mail should be indexed in the file "/var/CommuniGate/mmsearch.cfg";

4) schedule indexing using crontab of the root user, e.g. for every hour:

  0 * * * * root /var/CommuniGate/mmindex 2>> /var/CommuniGate/mmsearch.error.log

5) upload the file "PBXApps/multimailboxsearch.sppr" into the CGPro server-wide PBX applications;

6) upload the file "WebSkins/Crystal.tar" into the CGPro server-wide named skin "Crystal".

The first indexing run can take significant time (depending on mail storage size), thus it is recommended to execute it manually (with the root suer rights).

You can use the following special symbols in the search queries:

  * - word ending (e.g., "part*" stands for "parts", "partition" etc.);
  ^ - beginning of line (e.g., "^contract" stands for lines which have "contract" in the beginning);
  "" - exact match (e.g., "contract part" stands for results which contain the corresponding substring, otherwise the query without qoutes returns all results which contain words "contract" and "part").
  - -negation (e.g., the query "contract -part" returns results which contain "contract" excluding the ones which contain "part").

You can also combine special symbols in the queries, e.g.:

  ^contract* -part

By default DBs are stored in the CGPro account storage in directory "private/index/". Index and search logs are stored in the file "/var/CommuniGate/mmsearch.log".