fts_solr für Dovecot – Plugin-Datei nicht gefunden?

fts_solr für Dovecot – Plugin-Datei nicht gefunden?

Ich versuche, dies zu befolgen, um die Solr-Suche mit meiner Dovecot-Installation einzurichten:

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

Es scheint alles gut zu funktionieren – und ich kann den Kern im Solr-Admin sehen. Ich verwende Solr 8.9.0, aber es scheint mit den Konfigurationsdateien zufrieden zu sein.

Einer der Befehle, die zur tatsächlichen Indizierung ausgeführt werden müssen, lautet jedoch:

doveadm fts rescan -u [email protected] 

Ich bekomme:

Fatal: Plugin 'fts_solr' not found from directory /usr/lib/dovecot/modules

Tatsächlich sehe ich in nichts etwas mit diesem Namen:

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

Was übersehe ich? Muss ich das Plugin auch manuell installieren?

dovecot --version
2.3.7.2 (3c910f64b)

AKTUALISIEREN:Wenn ich mich umschaue, sehe ich dovecot-fts-solr, ein Plugin (https://alpine.pkgs.org/3.15/alpine-main-aarch64/dovecot-fts-solr-2.3.17.1-r0.apk.html) . Ich kriege es einfach nicht durch die Installation. Ich bin mir nicht sicher, wie ich weitermachen soll? (Ich könnte einfach die .so-Datei herunterladen und sie in /usr/lib/dovecot/modules ablegen, aber ich bin ziemlich sicher, dass das nicht funktioniert :))

UPDATE 2:Ich habe Folgendes herausgefunden:

apt-get installieren dovecot-solr

Dadurch wird die Datei lib21_fts_solr_plugin.so erstellt. Wenn ich jedoch versuche, die Nachrichten neu zu indizieren, erhalte ich nichts:

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)

Wenn man sich die Schnittstelle von Solr ansieht, sind keine Artikel vorhanden:

Bildbeschreibung hier eingeben

Antwort1

Verwendenden FTS-Index, dann werden die Ergebnisse in Ihrem FTS-Backend angezeigt.

Das Synchronisieren des internen Status von Volltextinhalten, die über den doveadm fts reindexBefehl an die FTS-Engine übermittelt werden, bewirkt nicht unbedingt viel. Im Fall dersolrBindung, esbewegt einfach den Cursorzurück auf Null.

Dadurch werden bereits gelöschte Mails aus dem Index entfernt und sichergestellt, dass der nächste Doveadm-Index alle fehlenden Mails (falls vorhanden) indexiert. Beachten Sie, dass derzeitdie meisten FTS-Backends implementieren dies nicht richtig, sondern löschen stattdessen alle FTS-Indizes. Dies kann sich in zukünftigen Versionen ändern. -- vonMann doveadm-fts, Hervorhebung von mir

Nur wenn etwas (Suche, Posten einer neuen E-Mail, manuelles Senden doveadm index) eine Aktualisierung des Indexes auslöstnachdieser Befehl, das heißt, wenn die Daten gesendet werden (in Ihrem Fall ansolr).

verwandte Informationen