![Dovecot 用の fts_solr - プラグイン ファイルが見つかりませんか?](https://rvso.com/image/782608/Dovecot%20%E7%94%A8%E3%81%AE%20fts_solr%20-%20%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%3F.png)
Dovecot インストールで Solr 検索を設定するために、次の手順に従っています:
https://doc.dovecot.org/configuration_manual/fts/solr/#fts-backend-solr
すべて正常に動作しているようです。また、Solr 管理でコアを確認できます。私は Solr 8.9.0 を使用していますが、構成ファイルには問題がないようです。
ただし、実際にインデックスを作成するために実行するように指示されているコマンドの 1 つは次のとおりです。
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インデックスを削除します。将来のバージョンでは変更される可能性があります。 -- から男 doveadm-fts、強調は筆者による
何か(検索の発行、新しいメールの投稿、手動doveadm index
)がインデックスの更新をトリガーした場合にのみ後そのコマンドは、データが送信されるときです(あなたの場合は、ソル)。