Estou tentando seguir isso para obter a configuração de pesquisa do Solr com minha instalação do Dovecot:
https://doc.dovecot.org/configuration_manual/fts/solr/#fts-backend-solr
Tudo parece funcionar bem - e posso ver o núcleo no administrador do Solr. Estou usando o Solr 8.9.0, mas parece satisfeito com os arquivos de configuração.
No entanto, um dos comandos que diz executar para realmente indexar:
doveadm fts rescan -u foo@bar.com
Eu recebo:
Fatal: Plugin 'fts_solr' not found from directory /usr/lib/dovecot/modules
Com certeza, não vejo nada em nada com esse nome:
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
o que estou perdendo? Preciso instalar manualmente o plug-in também?
dovecot --version
2.3.7.2 (3c910f64b)
ATUALIZAÇÃO: Olhando em volta, posso ver um plugin dovecot-fts-solr ( https://alpine.pkgs.org/3.15/alpine-main-aarch64/dovecot-fts-solr-2.3.17.1-r0.apk.html ) . Não consigo fazer a instalação. Não tem certeza de como proceder? (Eu poderia apenas baixar o arquivo .so e colocá-lo em /usr/lib/dovecot/modules , mas tenho certeza de que não funcionará :))
ATUALIZAÇÃO 2: Então consegui encontrar:
apt-get install dovecot-solr
Isso cria o arquivo lib21_fts_solr_plugin.so. No entanto, quando tento reindexar as mensagens, não recebo nada:
doveadm -D fts rescan -u hello@hatlamp.com
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(hello@hatlamp.com)<35131><>: Debug: auth-master: userdb lookup(hello@hatlamp.com): Started userdb lookup
doveadm(hello@hatlamp.com)<35131><>: Debug: auth-master: conn unix:/var/run/dovecot//auth-userdb: Connecting
doveadm(hello@hatlamp.com)<35131><>: Debug: auth-master: conn unix:/var/run/dovecot//auth-userdb: Client connected (fd=10)
doveadm(hello@hatlamp.com)<35131><>: Debug: auth-master: userdb lookup(hello@hatlamp.com): auth USER input: hello@hatlamp.com uid=1011 gid=8 home=/home/hatlamp quota_rule=*:storage=0M
doveadm(hello@hatlamp.com)<35131><>: Debug: auth-master: userdb lookup(hello@hatlamp.com): Finished userdb lookup (username=hello@hatlamp.com uid=1011 gid=8 home=/home/hatlamp quota_rule=*:storage=0M)
doveadm(hello@hatlamp.com)<35131><>: Debug: Added userdb setting: plugin/quota_rule=*:storage=0M
doveadm(hello@hatlamp.com): Debug: Effective uid=1011, gid=8, home=/home/hatlamp
doveadm(hello@hatlamp.com): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/hatlamp/mail/hatlamp.com/hello
doveadm(hello@hatlamp.com): Debug: maildir++: root=/home/hatlamp/mail/hatlamp.com/hello, index=, indexpvt=, control=, inbox=/home/hatlamp/mail/hatlamp.com/hello, alt=
doveadm(hello@hatlamp.com): Debug: auth-master: conn unix:/var/run/dovecot//auth-userdb: Disconnected: Connection closed (fd=10)
Olhando para a interface do Solr, não há artigos:
Use o índice FTS, então você verá os resultados em seu back-end fts.
A sincronização do estado interno do conteúdo de texto completo enviado ao mecanismo FTS por meio do
doveadm fts reindex
comando não necessariamente faz muito por si só. No caso da ligação solr , ela simplesmente move o cursor de volta para zero.Somente quando algo (emitir uma pesquisa, postar novo e-mail, manual
doveadm index
) acionar a atualização do índice após esse comando, é quando os dados são enviados (no seu caso, para solr ).