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 [email protected]
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 [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)
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 ).