Does fts_lucene need fts_squat?

Marcin Mirosław marcin at mejor.pl
Thu Oct 1 10:12:02 UTC 2015


Hi ML!
Please look at this:
- I've got no lucene-index:

> # ls /dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes
> ls: cannot access /dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes: No such file or directory

- run search in body:
>  echo -e "a select bugzilla\na search body flto\na logout\n" | /usr/libexec/dovecot/imap -u marcin at mejor.pl
> * PREAUTH [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SEARCH=FUZZY NOTIFY SPECIAL-USE COMPRESS=DEFLATE QUOTA] Logged in as marcin at mejor.pl
> * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk Old $label1 $label2 $label3 $label4 $label5 ae_autoextract)
> * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk Old $label1 $label2 $label3 $label4 $label5 ae_autoextract \*)] Flags permitted.
> * 5311 EXISTS
> * 0 RECENT
> * OK [UNSEEN 4910] First unseen.
> * OK [UIDVALIDITY 1246465819] UIDs valid
> * OK [UIDNEXT 17871] Predicted next UID
> * OK [HIGHESTMODSEQ 16914] Highest
> a OK [READ-WRITE] Select completed (0.005 secs).
> * SEARCH 366 380 2132 2515 2548 2551 2566 2567 2589 2612 2615 2617 3678 3696 4538
> a OK Search completed (2.768 secs).
> * BYE Logging out
> a OK Logout completed.
> imap(marcin at mejor.pl) <>: Info: Disconnected: Logged out in=45 out=1084

- still doesn't have lucene indexes:
> # ls /dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes
> ls: cannot access /dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes: No such file or directory

# doveadm  index -A "*"
# ls /dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes
ls: cannot access 
/dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes: No such file 
or directory

Now I'm changin 10-mail.conf:
-mail_plugins = fts fts_lucene quota notify mail_log stats zlib
+mail_plugins = fts fts_squat fts_lucene quota notify mail_log stats zlib

Reloading dovecot and:
- # doveadm index -A "*"
- # ls /dane/domeny/mejor.pl/mail/marcin/.maildir/lucene-indexes
_0.cfs  segments_3  segments.gen

Now something appears. But search returns no hit:
> # echo -e "a select bugzilla\na search body flto\na logout\n" | /usr/libexec/dovecot/imap -u marcin at mejor.pl
> * PREAUTH [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SEARCH=FUZZY NOTIFY SPECIAL-USE COMPRESS=DEFLATE QUOTA] Logged in as marcin at mejor.pl
> * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk Old $label1 $label2 $label3 $label4 $label5 ae_autoextract)
> * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk Old $label1 $label2 $label3 $label4 $label5 ae_autoextract \*)] Flags permitted.
> * 5311 EXISTS
> * 0 RECENT
> * OK [UNSEEN 4910] First unseen.
> * OK [UIDVALIDITY 1246465819] UIDs valid
> * OK [UIDNEXT 17871] Predicted next UID
> * OK [HIGHESTMODSEQ 16914] Highest
> a OK [READ-WRITE] Select completed (0.008 secs).
> * SEARCH
> a OK Search completed (0.004 secs).
> * BYE Logging out
> a OK Logout completed.
> imap(marcin at mejor.pl) <>: Info: Disconnected: Logged out in=45 out=1011

Also probably I mess something in index files. I've added fts_lucene 
earlier, then removed /lucene-indexes dir. Tried to do doveadm index, 
(does doeveadm fts rescan/optimize work? I didn't notice that mentioned 
commands do something with fts indexes (both squat and lucene).

Marcin

> # 2.2.18: /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.8 (0c4ae064f307+)
> # OS: Linux 4.1.6-hardened x86_64 Gentoo Base System release 2.2
> auth_cache_size = 1 k
> auth_master_user_separator = *
> auth_mechanisms = login digest-md5 cram-md5 plain
> deliver_log_format = msgid=%m: from=%f: phys=%p: virt=%w %$
> dict {
>   quota = pgsql:/etc/dovecot/dovecot-dict-sql.conf.ext
> }
> first_valid_uid = 8
> last_valid_uid = 8
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> mail_attachment_dir = /dane/domeny/zalaczniki
> mail_attachment_min_size = 10000 k
> mail_cache_min_mail_count = 20
> mail_gid = mail
> mail_log_prefix = "%s(%u) <%{session}>: "
> mail_plugins = fts fts_squat fts_lucene quota notify mail_log stats zlib
> mail_prefetch_count = 20
> mail_privileged_group = mail
> mail_uid = mail
> mailbox_list_index = yes
> maildir_stat_dirs = yes
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include vari
> ables body enotify environment mailbox date index ihave duplicate
> mdbox_preallocate_space = yes
> mdbox_rotate_interval = 60 days
> mdbox_rotate_size = 50 M
> namespace inbox {
>   inbox = yes
>   list = yes
>   location =
>   mailbox Drafts {
>     auto = subscribe
>     special_use = \Drafts
>   }
>   mailbox Junk {
>     auto = subscribe
>     special_use = \Junk
>   }
>   mailbox Sent {
>     auto = subscribe
>     special_use = \Sent
>   }
>   mailbox "Sent Messages" {
>     special_use = \Sent
>   }
>   mailbox Trash {
>     auto = subscribe
>     special_use = \Trash
>   }
>   prefix =
>   separator = .
>   subscriptions = yes
> }
> passdb {
>   args = /etc/dovecot/.master.user
>   driver = passwd-file
>   master = yes
>   pass = yes
> }
> passdb {
>   args = /etc/dovecot/dovecot-sql.conf.ext
>   driver = sql
> }
> plugin {
>   fts = lucene
>   fts_lucene = whitespace_chars=@.
>   fts_squat = partial=4 full=10
>   quota = dict:User quota::proxy::quota
>   sieve = file:~/sieve;active=~/.dovecot.sieve
>   stats_command_min_time = 1 mins
>   stats_domain_min_time = 12 hours
>   stats_ip_min_time = 12 hours
>   stats_memory_limit = 10k
>   stats_refresh = 30 s
>   stats_session_min_time = 15 mins
>   stats_track_cmds = yes
>   stats_user_min_time = 1 hours
>   zlib_save = bz2
>   zlib_save_level = 2
> }
> postmaster_address = postmaster at mejor.pl
> protocols = imap pop3 sieve
> service auth {
>   unix_listener auth-userdb {
>     group = mail
>     mode = 0660
>     user = root
>   }
> }
> service dict {
>   unix_listener dict {
>     user = mail
>   }
> }
> service stats {
>   fifo_listener stats-mail {
>     mode = 0600
>     user = mail
>   }
> }
> ssl_cert = </etc/ssl/private/gwiazdka.mejor.pl.pem
> ssl_key = </etc/ssl/private/gwiazdka.mejor.pl.pem
> userdb {
>   driver = prefetch
> }
> userdb {
>   args = /etc/dovecot/dovecot-sql.conf.ext
>   driver = sql
> }
> verbose_proctitle = yes
> protocol lda {
>   mail_plugins = fts fts_squat fts_lucene quota notify mail_log stats zlib sieve
> }
> protocol imap {
>   mail_max_userip_connections = 20
>   mail_plugins = fts fts_squat fts_lucene quota notify mail_log stats zlib imap_quota imap_stats imap_zlib
> }






More information about the dovecot mailing list