]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Add fts_search setting to disable FTS for specific mailboxes
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 21 Mar 2024 20:41:00 +0000 (22:41 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:12 +0000 (12:34 +0200)
For example:

mailbox Drafts {
  fts_search = no
}

src/plugins/fts/fts-settings.c
src/plugins/fts/fts-settings.h
src/plugins/fts/fts-storage.c

index a148ea919f9c8a8a53c6f0c93e587f6736903099..6186b895e75204cbc996c9e4725e6196a5889cb4 100644 (file)
@@ -19,6 +19,7 @@ static const struct setting_define fts_setting_defines[] = {
        { .type = SET_FILTER_NAME, .key = FTS_FILTER_DECODER_TIKA },
        DEF(STR,     decoder_tika_url),
        DEF(STR,     driver),
+       DEF(BOOL,    search),
        DEF(ENUM,    search_add_missing),
        DEF(BOOL,    search_read_fallback),
        DEF(BOOLLIST,header_excludes),
@@ -49,6 +50,7 @@ static const struct fts_settings fts_default_settings = {
        .decoder_script_socket_path = "",
        .decoder_tika_url = "",
        .driver = "",
+       .search = TRUE,
        .search_add_missing = FTS_SEARCH_ADD_MISSING_BODY_SEARCH_ONLY":yes",
        .search_read_fallback = TRUE,
 
index ebd0509eee8a6e6bec7af69d1583d97e590ebf53..b5af719a67e49addb5777d2377861132556af2c1 100644 (file)
@@ -21,6 +21,7 @@ struct fts_settings {
        const char *decoder_script_socket_path;
        const char *decoder_tika_url;
        const char *driver;
+       bool search;
        const char *search_add_missing;
        bool search_read_fallback;
        unsigned int autoindex_max_recent_msgs;
index 147755fcd1ff3eea04b10426549fdb844d21b11a..08f5dd37be4f798d56010a94c501fddf59b804ab 100644 (file)
@@ -177,7 +177,7 @@ fts_mailbox_search_init(struct mailbox_transaction_context *t,
        ctx = fbox->module_ctx.super.search_init(t, args, sort_program,
                                                 wanted_fields, wanted_headers);
 
-       if (*fbox->set->driver == '\0' ||
+       if (!fbox->set->search ||
            !fts_backend_can_lookup(flist->backend, args->args))
                return ctx;
 
@@ -669,7 +669,8 @@ fts_transaction_commit(struct mailbox_transaction_context *t,
        int ret = 0;
        const char *error;
 
-       autoindex = ft->mails_saved && fbox->set->autoindex && *fbox->set->driver != '\0';
+       autoindex = ft->mails_saved && fbox->set->autoindex &&
+               fbox->set->search;
 
        if (fts_transaction_end(t, &error) < 0) {
                mail_storage_set_error(t->box->storage, MAIL_ERROR_TEMP,