![Dovecot용 fts_solr - 플러그인 파일을 찾을 수 없나요?](https://rvso.com/image/782608/Dovecot%EC%9A%A9%20fts_solr%20-%20%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EB%82%98%EC%9A%94%3F.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 설치 비둘기장-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
으로는 많은 작업을 수행할 수 없습니다. 의 경우솔르바인딩, 그것단순히 커서를 이동0으로 돌아갑니다.
이렇게 하면 이미 삭제된 메일이 색인에서 제거되고 다음 doveadm 색인이 누락된 메일(있는 경우)을 모두 색인화하도록 합니다. 참고로 현재대부분의 FTS 백엔드는 이를 제대로 구현하지 않고 대신 모든 FTS 인덱스를 삭제합니다.. 이는 향후 버전에서 변경될 수 있습니다. -- 에서남자 doveadm-fts, 강조 내
무언가(검색 실행, 새 메일 게시, 수동 doveadm index
)가 색인 업데이트를 트리거하는 경우에만~ 후에해당 명령은 데이터가 전송되는 시점입니다(귀하의 경우에는솔르).