fts_solr not working

Jeff Gamsby jeffgamsby at merlock.com
Thu Jun 23 18:06:37 UTC 2016


I am running ISPConfig 3 on Debian and have managed to install the 
dovecot-solr and dovecot-fts plugins.

I have solr running undet tomcat at http://localhost:8880 but the 
indexing is not working.

I am using Dovecot 2.17

I do not understand namespaces and why fts_solr needs them, I just want 
to index the entire users Maildir.

I am trying to index a users mailbox but am getting the following error:

(changed user name)
doveadm fts rescan -u user at user.com inbox
doveadm(user at user.com): Error: Namespace prefix not found: inbox

running that in debig mode gives:

doveadm(root): Debug: Loading modules from directory: 
/usr/lib/dovecot/modules
doveadm(root): Debug: Module loaded: 
/usr/lib/dovecot/modules/lib20_fts_plugin.so
doveadm(root): Debug: Module loaded: 
/usr/lib/dovecot/modules/lib21_fts_solr_plugin.so
doveadm(root): Debug: Loading modules from directory: 
/usr/lib/dovecot/modules/doveadm
doveadm(root): 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)
doveadm(root): 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)
doveadm(root): 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)
doveadm(root): Debug: Skipping module doveadm_zlib_plugin, because 
dlopen() failed: 
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_zlib_plugin.so: undefined 
symbol: i_stream_create_deflate (this is usually intentional, so just 
ignore this message)
doveadm(root): Debug: Module loaded: 
/usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so
doveadm(user at user.com): Debug: Added userdb setting: 
mail=maildir:/var/vmail/user.com/user/Maildir
doveadm(user at user.com): Debug: Added userdb setting: 
plugin/quota_rule=*:storage=0B
doveadm(user at user.com): Debug: Added userdb setting: 
plugin/sieve=/var/vmail/user.com/user/.sieve
doveadm(user at user.com): Debug: Effective uid=5000, gid=5000, 
home=/var/vmail/user.com/user
doveadm(user at user.com): Debug: Namespace inbox: type=private, prefix=, 
sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes 
location=maildir:/var/vmail/user.com/user/Maildir
doveadm(user at user.com): Debug: maildir++: 
root=/var/vmail/user.com/user/Maildir, index=, control=, 
inbox=/var/vmail/user.com/user/Maildir, alt=
doveadm(user at user.com): Debug: fts: No fts setting - plugin disabled
doveadm(user at user.com): Error: Namespace prefix not found: inbox

in conf.d/10-mail.conf I have this namespace defined:

namespace inbox {
   # Namespace type: private, shared or public
   #type = private

   # Hierarchy separator to use. You should use the same separator for 
all
   # namespaces or some clients get confused. '/' is usually a good one.
   # The default however depends on the underlying mail storage format.
   #separator =

   # Prefix required to access this namespace. This needs to be different 
for
   # all namespaces. For example "Public/".
   #prefix =

   # Physical location of the mailbox. This is in same format as
   # mail_location, which is also the default for it.
   #location =

   # There can be only one INBOX, and this setting defines which 
namespace
   # has it.
   inbox = yes

   # If namespace is hidden, it's not advertised to clients via NAMESPACE
   # extension. You'll most likely also want to set list=no. This is 
mostly
   # useful when converting from another server with different namespaces 
which
   # you want to deprecate but still keep working. For example you can 
create
   # hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
   #hidden = no
protocol imap {
   plugin {
     fts = solr
     fts_solr = break-imap-search url=http://localhost:8880/solr/
   }
}
protocol pop3 {
   plugin {
     fts = solr
     fts_solr = break-imap-search url=http://localhost:8880/solr/
   }

   # Show the mailboxes under this namespace with LIST command. This 
makes the
   # namespace visible for clients that don't support NAMESPACE 
extension.
   # "children" value lists child mailboxes, but hides the namespace 
prefix.
   #list = yes

   # Namespace handles its own subscriptions. If set to "no", the parent
   # namespace handles them (empty prefix should always have this as 
"yes")
   #subscriptions = yes
}


I had to put this in dovecot.conf in order for the plugin to be enabled:

mail_plugins = fts fts_solr

solr is reachable at localhost:8880/solr and appears to be working.

Please help, any suggestions are welcome

Thanks


More information about the dovecot mailing list