Dovecot 的 fts_solr - 找不到外掛程式檔案?

Dovecot 的 fts_solr - 找不到外掛程式檔案?

我正在嘗試按照此步驟透過 Dovecot 安裝來取得 Solr 搜尋設定:

https://doc.dovecot.org/configuration_manual/fts/solr/#fts-backend-solr

一切似乎都正常工作 - 我可以在 Solr 管理中看到核心。我正在使用 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 安裝 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 索引。這可能會在未來版本中發生變化。 - 從man doveadm-fts,強調我的

只有當某些事情(發出搜尋、發布新郵件、手動doveadm index)觸發更新索引時該命令,即發送資料的時間(在您的情況下,發送到索爾)。

相關內容