![fts_solr для Dovecot — не можете найти файл плагина?](https://rvso.com/image/782608/fts_solr%20%D0%B4%D0%BB%D1%8F%20Dovecot%20%E2%80%94%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%D0%B5%20%D0%BD%D0%B0%D0%B9%D1%82%D0%B8%20%D1%84%D0%B0%D0%B9%D0%BB%20%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%3F.png)
Я пытаюсь выполнить следующие действия, чтобы настроить поиск Solr с помощью моей установки Dovecot:
https://doc.dovecot.org/configuration_manual/fts/solr/#fts-backend-solr
Кажется, все работает нормально - и я вижу ядро в Solr admin. Я использую Solr 8.9.0, но он, похоже, доволен файлами конфигурации.
Однако одна из команд, которую он предлагает запустить для фактического индексирования:
doveadm fts rescan -u [email protected]
Я получил:
Fatal: Plugin 'fts_solr' not found from directory /usr/lib/dovecot/modules
Конечно же, я не вижу ничего под таким названием:
root@east:/usr/lib/dovecot/modules# ls -lh *fts*
-rw-r--r-- 1 root root 263K Jul 7 17:17 lib20_fts_plugin.so
-rw-r--r-- 1 root root 71K Jul 7 17:17 lib21_fts_squat_plugin.so
Что я упускаю? Мне тоже нужно вручную устанавливать плагин?
dovecot --version
2.3.7.2 (3c910f64b)
ОБНОВЛЯТЬ:Оглядевшись, я вижу плагин dovecot-fts-solr (https://alpine.pkgs.org/3.15/alpine-main-aarch64/dovecot-fts-solr-2.3.17.1-r0.apk.html) . Кажется, я не могу его установить. Не совсем уверен, как действовать дальше? (Я мог бы просто скачать файл .so и поместить его в /usr/lib/dovecot/modules , но я почти уверен, что это не сработает :))
ОБНОВЛЕНИЕ 2:Итак, мне удалось найти:
apt-get install dovecot-solr
Это создает файл lib21_fts_solr_plugin.so. Однако, когда я пытаюсь переиндексировать сообщения, я ничего не получаю:
doveadm -D fts rescan -u [email protected]
Debug: Loading modules from directory: /usr/lib/dovecot/modules
Debug: Module loaded: /usr/lib/dovecot/modules/lib20_fts_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/lib21_fts_solr_plugin.so
Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm
Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message)
Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so
Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message)
Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so
Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: undefined symbol: mail_crypt_box_get_pvt_digests (this is usually intentional, so just ignore this message)
doveadm([email protected])<35131><>: Debug: auth-master: userdb lookup([email protected]): Started userdb lookup
doveadm([email protected])<35131><>: Debug: auth-master: conn unix:/var/run/dovecot//auth-userdb: Connecting
doveadm([email protected])<35131><>: Debug: auth-master: conn unix:/var/run/dovecot//auth-userdb: Client connected (fd=10)
doveadm([email protected])<35131><>: Debug: auth-master: userdb lookup([email protected]): auth USER input: [email protected] uid=1011 gid=8 home=/home/hatlamp quota_rule=*:storage=0M
doveadm([email protected])<35131><>: Debug: auth-master: userdb lookup([email protected]): Finished userdb lookup ([email protected] uid=1011 gid=8 home=/home/hatlamp quota_rule=*:storage=0M)
doveadm([email protected])<35131><>: Debug: Added userdb setting: plugin/quota_rule=*:storage=0M
doveadm([email protected]): Debug: Effective uid=1011, gid=8, home=/home/hatlamp
doveadm([email protected]): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/hatlamp/mail/hatlamp.com/hello
doveadm([email protected]): Debug: maildir++: root=/home/hatlamp/mail/hatlamp.com/hello, index=, indexpvt=, control=, inbox=/home/hatlamp/mail/hatlamp.com/hello, alt=
doveadm([email protected]): Debug: auth-master: conn unix:/var/run/dovecot//auth-userdb: Disconnected: Connection closed (fd=10)
Если взглянуть на интерфейс Solr, то там нет статей:
решение1
Использоватьиндекс FTS, то вы увидите результаты в вашем бэкэнде fts.
Синхронизация внутреннего состояния полнотекстового контента, отправленного в движок FTS через doveadm fts reindex
команду, сама по себе не обязательно дает многого. В случаесолробязательный, этопросто перемещает курсоробратно к нулю.
Это удаляет письма из индекса, которые уже были удалены, и гарантирует, что следующий индекс doveadm проиндексирует все отсутствующие письма (если таковые имеются). Обратите внимание, что в настоящее времябольшинство бэкэндов FTS не реализуют это должным образом, а вместо этого удаляют все индексы FTS. Это может измениться в будущих версиях. -- отчеловек doveadm-fts, выделено мной
Только когда что-то (выполнение поиска, отправка новой почты, ручное действие doveadm index
) запускает обновление индексапослеэта команда, то есть когда данные отправляются (в вашем случае, всолр).