Hello
How do I reindex all e-mails (for a user or for all users) for FTS? Seems I can find new emails, but not old ones.
I tried this:
askwar@mail /o/mailcow-dockerized> time sudo docker compose exec dovecot-mailcow doveadm index -A '*'
Executed in 1.73 secs fish external usr time 0.00 millis 0.00 millis 0.00 millis sys time 12.90 millis 1.08 millis 11.83 millis
As you can see, this was very fast — should it be…?
I'd like to be able to search for a text which is in attachments and then I'd need to be able to find the email. This works fine for new emails, but not for old ones. To verify that the attachment would be readable by tika, I took an old e-mail, saved the PDF attachment, and then mailed it to me. Searching for the e-mail will find the new e-mail, but not the old one.
The mailbox is not exactly small:
askwar@mail /o/mailcow-dockerized> sudo docker compose exec dovecot-mailcow doveadm quota get -u a@skwar.xyz Quota name Type Value Limit % Userquota STORAGE 34908222 61685760 56 Userquota MESSAGE 458837 - 0
bd36093fccaa:/# du -sh /var/vmail_index/a\@skwar.xyz/ /var/vmail/skwar.xyz/a 2.4G /var/vmail_index/a@skwar.xyz/ 27G /var/vmail/skwar.xyz/a
I've enabled full text search fts in dovecot with these settings:
plugin { fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts = flatcurve fts_tika = http://tika:9998/tika
fts_tokenizer_email_address = maxlen=100
fts_tokenizer_generic = algorithm=simple maxlen=30
fts_languages = en es de
fts_tokenizers = generic email-address
fts_filters = normalizer-icu snowball stopwords
fts_filters_en = lowercase snowball english-possessive stopwords
fts_index_timeout = 300s
}
askwar@mail /o/mailcow-dockerized> docker --version Docker version 27.3.1, build ce12230
askwar@mail /o/mailcow-dockerized> sudo docker compose exec dovecot-mailcow dovecot --version 2.3.21.1 (d492236fa0)
Thanks, Alexander