dovecot的全文搜索
试了一下这个基于 CLucene 的全文搜索,似乎还不错。这里记一下过程。
首先是给 dovecot 安装 Lucene 插件,用 FreeBSD port 来安装的话,只需 make config,选择 LUCENE 然后 portmaster dovecot 即可。
配置也还算容易,我之前已经做了索引与数据分开,因此并不需要单独的配置,只需在 dovecot.conf 中增加:
plugin {
fts = lucene
# Lucene-specific settings, good ones are:
fts_lucene = whitespace_chars=@.
}
然后重启 dovecot,运行 doveadm index -A ‘*’ 就行了。注意,-A需要userdb的支持。
日常维护方面,目前 dovecot 预设是在搜索的时候重新抓取索引,而邮件送达时则不会做任何其他处理。我目前用的解法是让 cron 每隔 11 分钟跑一次 doveadm index -A INBOX 来重做 INBOX 的索引。另外,用 FreeBSD 的 periodic 每天更新一次全部索引 (doveadm index -A ‘*’),并在每月做一次 doveadm fts rescan -A(这个其实并不是必须的,主要是防止出现直接操作Mailbox时出现不一致的情况)。