[Dovecot] When are search indexes updated?
Dave Abrahams
dave at boostpro.com
Tue Dec 4 19:42:20 EET 2012
on Tue Dec 04 2012, Timo Sirainen <tss-AT-iki.fi> wrote:
> On 4.12.2012, at 18.57, Dave Abrahams wrote:
>
>> Here's a further experience report with questions inline:
>>
>> 1. "doveadm index '*'" crashes in clucene (for me), so it must be trying
>> to update the FTS indexes, somehow. Is that (the updating, not the
>> crashing) intended behavior, and if so, should it be documented?
>
> doveadm index always triggers adding any unindexed messages to Dovecot
> index with mbox/Maildir code. With [sm]dbox all mails are always
> indexed, so this part doesn't do anything with them.
>
> When fts plugin is enabled, dovecot index also triggers the fts index
> updating of all messages not yet in the fts index. You usually should
> use the -q ("queue") parameter so that doveadm index only tells
> indexer process to start indexing. Without -q parameter the doveadm
> process itself does the indexing, but this is problematic with
> fts-lucene if another process attempts to index the mails at the same
> time. -q doesn't wait for indexer to finish.
Oh, this is hugely important information! Wish I'd had that earlier.
Is that on the Wiki somewhere that I missed?
Huh, -q isn't even in the manpage for doveadm index. Could you fix
that, please?
>> 2. "doveadm search text SOMETHINGthatWONTbeFOUND" takes a long time and
>> finds stuff without crashing, but doesn't seem to create the
>> lucene-indexes/ directory in my mdbox, and it takes a long time the
>> next time around. Is "doveadm search" intended to update the FTS
>> indexes if they're missing?
>
> Yes. It should trigger the same doveadm index -q code. Maybe you have
> a (permission) problem connecting to indexer process. It should write
> about that to stderr.
Well, I'm not seeing anything like that :(
I just stopped dovecot, removed my lucene-indexes, started dovecot up
again, and issued "doveadm index -q / imap SEARCH body asdfg"
It came back immediately with a prompt, there was no output, and I don't
see an indexer-helper process. In fact, the behavior is the same
without "-q"
>> 3. Performing a search on a large mailbox through IMAP takes a long time
>> the first time around, during which "top" shows the big cpu hog is
>> /opt/local/libexec/dovecot/indexer-worker, lucene-indexes/ is
>> created, and subsequent searches go quickly. Nice! Is there a
>> reasonably easy way to start such a search on all my mailboxes from
>> the command line by using doveadm or the preauth tunnel?
>
> doveadm index -q / imap SEARCH body asdfg
This looks completely unlike anything I can find in "man doveadm-index";
are you sure it's right? I can delete any number of arguments after the
"/" without seeming to affect its behavior.
--
Dave Abrahams
BoostPro Computing Software Development Training
http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
More information about the dovecot
mailing list