[Dovecot] FTS and compound searches

Stan Hoeppner stan at hardwarefreak.com
Sat Dec 11 11:42:47 EET 2010

Tony Pyro put forth on 12/10/2010 4:29 PM:
> Hello,
> New subscriber here. I noticed that the FTS index is not used in compound searches. Is this expected? Tested in 2.0.0 and 2.0.8:
> . search BODY "waldo"
> . OK Search completed (0.000 secs).
> . OK Search completed (1.768 secs).
> * OK Searched 0% of the mailbox, ETA 9605:25
> * OK Searched 4% of the mailbox, ETA 6:39
> * OK Searched 6% of the mailbox, ETA 6:58
> * OK Searched 8% of the mailbox, ETA 6:54
> It's a problem for us because the Afterlogic webmail client does not offer a body-only search. The two search options are From + To + Subject, or "entire messages", which puts together a large OR query:
> SRCH1069 SEARCH CHARSET UTF-8 OR (OR (OR FROM "waldo" TO "waldo") SUBJECT "waldo") BODY "waldo"
> I also checked to see whether the header fields are included in the FTS index but it didn't appear so. I got more results from the search "TO gmail.com" than from "BODY gmail.com"
> plugin {
>   fts = squat
> }
> protocol imap {
>   mail_plugins = " fts fts_squat"
> }

Was the above performed with a cold or hot Squat index.  If cold,
performance will always suck.  That's the big downside of Squat.  The
indexes must be hot.  Unless Timo fixed this in 2.0.x and I missed
seeing the announcement.

My dovecot hardware is absolutely ancient, dual 500 MHz machine.  Cold
Squat searches on a 15K mbox mailbox take upwards of 1.5 minutes.  With
the index hot, any search on that same folder takes a fraction of a second.

I'm guessing your solution, which has been mentioned on list before, is
to write a basic search script and run it nightly, twice a day, or more
often, depending on your needs, to keep the index hot.  Whenever Squat
has to rebuilt the index, the initial search takes forever, often making
it slower than not using Squat at all.


More information about the dovecot mailing list