![Dovecot 的 fts_solr - 找不到外掛程式檔案?](https://rvso.com/image/782608/Dovecot%20%E7%9A%84%20fts_solr%20-%20%E6%89%BE%E4%B8%8D%E5%88%B0%E5%A4%96%E6%8E%9B%E7%A8%8B%E5%BC%8F%E6%AA%94%E6%A1%88%EF%BC%9F.png)
我正在嘗試按照此步驟透過 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
)觸發更新索引時後該命令,即發送資料的時間(在您的情況下,發送到索爾)。