======Full Text Search======
In VPOP3 Enterprise v7.0 a facility for full-text-search on message content was added. Because the full-text-search indexes can be quite big, this facility is optional.
For several reasons, the full-text-search is stored in a separate PostgreSQL database. This means that it is not backed up with your standard backups. After a restore, the full-text-search index can be rebuilt from the raw message content.
Full text search allows you to search message content quickly. Currently it is used in the Diagnostics -> Message Search option, but we will be extending it to be used by IMAP4 searches.
====Enabling full text search====
To enable the full-text-search option, you need to run the 'createsearchdb' script in the VPOP3 installation directory
For example:
Start -> Run: cmd
cd \vpop3
createsearchdb
If it asks for for a password, the default is 'pgsqlpass'
After doing this restart VPOP3.
====Disabling full text search====
To disable the full-text-search option, you need to stop VPOP3 and run the 'deletesearchdb' script.
For example:
[[Stop VPOP3]]
Start -> Run: cmd
cd \vpop3
deletesearchdb
====Changing the FTS language====
The default language for the FTS facility is English. This does not mean that it will only allow you to search for English words, but that it understands 'stemming' and stop-words for English.
Stemming makes words into their most 'basic' forms. For instance if you search for 'are you buying some cats', it will also find 'I will buy a cat', because 'buying'/'buy' and 'cats'/'cat' have the same 'stem'.
Stop words reduce search index sizes by not indexing common words, such as 'and' and 'the'. These will be in almost every message, so there is no point searching for them.
In Settings -> Database -> Search Index in the VPOP3 settings, you can change the FTS language to one of those supported by PostgreSQL. When you change the language, the entire index will need rebuilding.
The 'simple' language option will work with any language but does not support stemming or stop words. It is possible to create FTS parsers for other languages, but that is outside the scope of our support. (See the [[https://www.postgresql.org/docs/9.1/static/textsearch-configuration.html|PostgreSQL documentation]] for details).