This is explicitly noted in https://doc.dovecot.org/2.4.4/core/plugins/fts_flatcurve.html#fts_flatcurve_...
Substring search is likely increasing your storage size by >5x compared to it being off.
This is a limitation of the xapian library itself - it does not natively support substring search (it is designed for prefix search), so it requires extensive additional indexing to get substring search to work.
michael
On 05/14/2026 2:21 PM MDT Jean-Daniel Beaubien via dovecot <dovecot@dovecot.org> wrote:
Hi everyone,
I am currently trying to update from an old dovecot 2.3 setup with fts-lucene to 2.4.2 with fts-flatcurve.
However, I am seeing a giant jump in the size of the indexes.
For an email account that takes 12GB of storage, I get the following index sizes:
- lucene: 270 MB
- flatcurve: 2400 MB
That is almost a 10x increase in the index size (with flatcurve the indexes represent 20% of the size of the mailbox).
Considering I have a mailbox that takes 270GB, I can't imagine the size of the indexes.
*Am I doing something wrong with flatcurve? How can the indexes be so much larger than lucene?*
I took the default flatcurve configuration from the Ubuntu 26.04 install: mail_plugins { fts = yes fts_flatcurve = yes }
fts_autoindex = yes
language_filters = normalizer-icu snowball stopwords
language_tokenizers = generic email-address language_tokenizer_generic_algorithm = simple
language en { default = yes filters = lowercase snowball english-possessive stopwords }
fts flatcurve {
All of these are optional, and indicate the default values.
They are listed here for documentation purposes; most people should not
need to define/override in their config.
commit_limit = 500
max_term_size = 30
min_term_size = 2
optimize_limit = 10
rotate_count = 5000
rotate_time = 5000
substring_search = yes }
*Any help/insight would be greatly appreciated.*
Best regards,
-J Hi everyone, I am currently trying to update from an old dovecot 2.3 setup with fts-lucene to 2.4.2 with fts-flatcurve. However, I am seeing a giant jump in the size of the indexes. For an email account that takes 12GB of storage, I get the following index sizes:
o lucene: 270 MB o flatcurve: 2400 MBThat is almost a 10x increase in the index size (with flatcurve the indexes represent 20% of the size of the mailbox). Considering I have a mailbox that takes 270GB, I can't imagine the size of the indexes. Am I doing something wrong with flatcurve? How can the indexes be so much larger than lucene? I took the default flatcurve configuration from the Ubuntu 26.04 install: mail_plugins { fts = yes fts_flatcurve = yes }
fts_autoindex = yes
language_filters = normalizer-icu snowball stopwords
language_tokenizers = generic email-address language_tokenizer_generic_algorithm = simple
language en { default = yes filters = lowercase snowball english-possessive stopwords }
fts flatcurve { # All of these are optional, and indicate the default values. # They are listed here for documentation purposes; most people should not # need to define/override in their config. # commit_limit = 500 # max_term_size = 30 # min_term_size = 2 # optimize_limit = 10 # rotate_count = 5000 # rotate_time = 5000 substring_search = yes } Any help/insight would be greatly appreciated. Best regards, -J
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org