Как отключить поиск тела в dovecot?
Мы запускаем почтовый сервер из 30 тысяч учетных записей электронной почты (Maildir) с сервером Dovecot imap. Мы страдаем от высокой нагрузки ввода-вывода, особенно когда пользователь начинает искать большие папки IMAP. Есть ли способ предотвратить поиск по телу? Мне нужно разрешить поиск по заголовкам (тема, от / до).
Я не мог найти что-нибудь об этом в конфигурации / документации.
2 ответа
Это не выполнимо. Поиск не является обязательным в IMAP, и ни один совместимый сервер не может избежать поиска. Я знаю, что люди изменили источник, чтобы сделать это, но это часто вызывает еще большую нагрузку, поскольку клиенты возвращаются к массовой загрузке.
У Dovecot есть способы ускорить поиск. Посмотри на это, если сможешь.
Старый поток, но столкнулся с той же проблемой и хотел поделиться своим решением.
Я сделал это для dovecot 2.2.21 и, кажется, работает нормально для меня. В lib-storage / mail-search.c я закомментировал два назначения * have_body = true. Пока нет никаких побочных эффектов, кроме очевидного отсутствия поиска в теле сообщения. По-прежнему поиск текста будет искать в заголовках. Если требуются тела поиска (т. Е. Результаты ожидаются), но не требуется фактический поиск в телах, а только заголовки, тогда have_body = true может быть заменено на have_text = true.
Предполагая, что вы перестраиваете ту же версию, что и установленная в настоящее время, библиотека, которую нужно заменить, - это libdovecot-storage.
В качестве примечания: я всегда советую своим пользователям правильно указывать темы электронной почты для адекватного поиска. Субъект с одним словом "проблема" не очень помогает, когда дело доходит до поиска даже внутри тела.