Dovecot配置Solr全文搜索时插件缺失及索引无结果问题排查求助
Dovecot配置Solr全文搜索时插件缺失及索引无结果问题排查求助
我最近在折腾Dovecot配置Solr全文搜索,跟着官方文档一步步来,Solr用的是8.9.0版本,后台已经能看到创建好的core,配置文件看起来也没啥问题。
不过在执行索引命令的时候遇到了第一个坑:
doveadm fts rescan -u foo@bar.com
直接报错:
Fatal: Plugin 'fts_solr' not found from directory /usr/lib/dovecot/modules
我去模块目录查了下,和fts相关的文件只有这两个:
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
这情况我是不是漏装了什么插件?难道需要手动单独安装fts_solr插件吗?对了,我的Dovecot版本是2.3.7.2 (3c910f64b)。
后来我自己查了查,发现确实有个dovecot-fts-solr插件,但尝试安装的时候一直搞不定,甚至想过直接下载.so文件丢到模块目录里,但直觉告诉我这么做肯定行不通,实在不知道该怎么往下走了。
再后来终于找到正确的安装命令:
apt-get install dovecot-solr
安装成功后,模块目录里终于出现了lib21_fts_solr_plugin.so文件。但问题又来了,我重新执行索引命令:
doveadm -D fts rescan -u hello@hatlamp.com
看调试日志,模块确实加载成功了,但去Solr后台一看,还是没有任何文档被索引进去。下面是完整的调试日志:
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)
有没有大佬能帮我看看这是咋回事啊?
备注:内容来源于stack exchange,提问作者Andrew Newby
相关产品推荐
相关产品推荐

