FTS flatcurve not index messages when SEARCH run on Virtual Mailboxes
Hi,
I'm testing FTS flatcurve plugin in order to understand if I can switch from FTS Solr to flatcurve.
In my configuration I have enabled Virtual mailboxes and for search in all folders I just SEARCH on Virtual/All folder. I this (virtual) folder is not indexed with FTS Solr Dovecot start to index it (or all real folders).
But with FTS flatcurve when I SEARCH on Virtual/All for the first time the indexer process does not start and the search return empty. Only if I run manually "doveadm index -q -u alessio@email.net '*'" flatcurve find messages.
Can flatcurve have the same feature as Solr for Virtual mailboxes?
Here a sample of my configuration:
namespace Virtual { hidden = yes list = no location = virtual:/etc/dovecot/virtual:INDEX=~/Maildir/virtual prefix = Virtual/ separator = / subscriptions = no }
namespace inbox { [...] mailbox virtual/All { comment = All my messages special_use = \All } }
# cat /etc/dovecot/virtual/All/dovecot-virtual * all
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
On 11/01/2022 15:21 Alessio Cecchi alessio@skye.it wrote:
Hi, I'm testing FTS flatcurve plugin in order to understand if I can switch from FTS Solr to flatcurve.
In my configuration I have enabled Virtual mailboxes and for search in all folders I just SEARCH on Virtual/All folder. I this (virtual) folder is not indexed with FTS Solr Dovecot start to index it (or all real folders).
But with FTS flatcurve when I SEARCH on Virtual/All for the first time the indexer process does not start and the search return empty. Only if I run manually "doveadm index -q -u alessio@email.net '*'" flatcurve find messages.
Can flatcurve have the same feature as Solr for Virtual mailboxes? Here a sample of my configuration: namespace Virtual { hidden = yes list = no location = virtual:/etc/dovecot/virtual:INDEX=~/Maildir/virtual prefix = Virtual/ separator = / subscriptions = no }
namespace inbox { [...] mailbox virtual/All { comment = All my messages special_use = \All } }
# cat /etc/dovecot/virtual/All/dovecot-virtual * all
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
Hi!
plugin { fts_autoindex = yes fts_enforced = yes }
probably fixes your issue.
Aki
Il 11/01/22 15:27, Aki Tuomi ha scritto:
On 11/01/2022 15:21 Alessio Cecchi alessio@skye.it wrote:
Hi, I'm testing FTS flatcurve plugin in order to understand if I can switch from FTS Solr to flatcurve.
In my configuration I have enabled Virtual mailboxes and for search in all folders I just SEARCH on Virtual/All folder. I this (virtual) folder is not indexed with FTS Solr Dovecot start to index it (or all real folders).
But with FTS flatcurve when I SEARCH on Virtual/All for the first time the indexer process does not start and the search return empty. Only if I run manually "doveadm index -q -u alessio@email.net '*'" flatcurve find messages.
Can flatcurve have the same feature as Solr for Virtual mailboxes? Here a sample of my configuration: namespace Virtual { hidden = yes list = no location = virtual:/etc/dovecot/virtual:INDEX=~/Maildir/virtual prefix = Virtual/ separator = / subscriptions = no }
namespace inbox { [...] mailbox virtual/All { comment = All my messages special_use = \All } }
# cat /etc/dovecot/virtual/All/dovecot-virtual * all
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice Hi!
plugin { fts_autoindex = yes fts_enforced = yes }
probably fixes your issue.
Aki
Hi Aki,
in 90-plugin.conf I have already:
fts = flatcurve fts_autoindex = yes fts_enforced = yes (with fts_solr I'm using body instead and works fine)
but only when I SEARCH on a specific mailbox index-worker start to index messages.
When I SEARCH on Virtual/All result are empty or contain only messages from previously index mailboxes. I notice also that when SEARCH on Virtual/All directory "fts-flatcurve" is created but is empty:
# du -sh .Sent/fts-flatcurve/ 20K .Sent/fts-flatcurve/
And only when index/SEARCH run directly on this folder fts-flatcurve is populated:
# du -sh .Sent/fts-flatcurve/ 27M .Sent/fts-flatcurve/
I hope that fts-flatcurve will follow the same behavior of fts-solr about dovecot settings.
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
On 01/11/2022 9:36 AM Alessio Cecchi alessio@skye.it wrote:
When I SEARCH on Virtual/All result are empty or contain only messages from previously index mailboxes. I notice also that when SEARCH on Virtual/All directory "fts-flatcurve" is created but is empty:
Can you open a ticket at https://github.com/slusarz/dovecot-fts-flatcurve/issues? FTS drivers don't require code to handle virtual mailboxes separately, but it is possible that this is hitting a code path in flatcurve that isn't touched with single mailbox queries so there could very well be a bug.
michael
Il 11/01/22 15:27, Aki Tuomi ha scritto:
On 11/01/2022 15:21 Alessio Cecchi alessio@skye.it wrote:
Hi, I'm testing FTS flatcurve plugin in order to understand if I can switch from FTS Solr to flatcurve.
In my configuration I have enabled Virtual mailboxes and for search in all folders I just SEARCH on Virtual/All folder. I this (virtual) folder is not indexed with FTS Solr Dovecot start to index it (or all real folders).
But with FTS flatcurve when I SEARCH on Virtual/All for the first time the indexer process does not start and the search return empty. Only if I run manually "doveadm index -q -u alessio@email.net '*'" flatcurve find messages.
Can flatcurve have the same feature as Solr for Virtual mailboxes? Here a sample of my configuration: namespace Virtual { hidden = yes list = no location = virtual:/etc/dovecot/virtual:INDEX=~/Maildir/virtual prefix = Virtual/ separator = / subscriptions = no }
namespace inbox { [...] mailbox virtual/All { comment = All my messages special_use = \All } }
# cat /etc/dovecot/virtual/All/dovecot-virtual * all
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice Hi!
plugin { fts_autoindex = yes fts_enforced = yes }
probably fixes your issue.
Hi,
probably I have found where is the issue.
My Dovecot is configured with fts=solr and my mailbox is already indexed with Solr. For testing Flatcurve I just change dovecot config from fts=solr to fts=flatcurve and run "doveadm fts rescan -u EMAIL".
Now, after "fts rescan" on my account if I SEARCH on a standard mailbox folder, flatcurve index is updated, if I SEARCH on Virtual/All flatcurve index is not updated.
If I test SEARCH, with flatcurve, on a newly created mailbox account, never indexed with Solr (or if I delete all dovecot.* file on my mailbox account previously index with Solr) also a SEARCH on Virtual/All updating flatcurve index.
So my question is, there is a specific command for switch from an FTS plugin to another or there is a bug in this procedure?
Thanks
--
Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
On 17/01/2022 10:09 Alessio Cecchi alessio@skye.it wrote:
On 11/01/2022 15:21 Alessio Cecchi alessio@skye.it wrote:
Hi, I'm testing FTS flatcurve plugin in order to understand if I can switch from FTS Solr to flatcurve.
In my configuration I have enabled Virtual mailboxes and for search in all folders I just SEARCH on Virtual/All folder. I this (virtual) folder is not indexed with FTS Solr Dovecot start to index it (or all real folders).
But with FTS flatcurve when I SEARCH on Virtual/All for the first time the indexer process does not start and the search return empty. Only if I run manually "doveadm index -q -u alessio@email.net '*'" flatcurve find messages.
Can flatcurve have the same feature as Solr for Virtual mailboxes? Here a sample of my configuration: namespace Virtual { hidden = yes list = no location = virtual:/etc/dovecot/virtual:INDEX=~/Maildir/virtual prefix = Virtual/ separator = / subscriptions = no }
namespace inbox { [...] mailbox virtual/All { comment = All my messages special_use = \All } }
# cat /etc/dovecot/virtual/All/dovecot-virtual * all
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
Hi!
plugin { fts_autoindex = yes fts_enforced = yes }
probably fixes your issue. Hi,
Il 11/01/22 15:27, Aki Tuomi ha scritto: probably I have found where is the issue. My Dovecot is configured with fts=solr and my mailbox is already indexed with Solr. For testing Flatcurve I just change dovecot config from fts=solr to fts=flatcurve and run "doveadm fts rescan -u EMAIL". Now, after "fts rescan" on my account if I SEARCH on a standard mailbox folder, flatcurve index is updated, if I SEARCH on Virtual/All flatcurve index is not updated. If I test SEARCH, with flatcurve, on a newly created mailbox account, never indexed with Solr (or if I delete all dovecot.* file on my mailbox account previously index with Solr) also a SEARCH on Virtual/All updating flatcurve index. So my question is, there is a specific command for switch from an FTS plugin to another or there is a bug in this procedure? Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
fts rescan actually just deletes fts indexes, it does not actually rescan anything.
to do full rescan, you need to
doveadm fts rescan -u user doveadm index -u user "*"
Aki
On 01/17/2022 1:24 AM Aki Tuomi aki.tuomi@open-xchange.com wrote:
On 17/01/2022 10:09 Alessio Cecchi alessio@skye.it wrote: So my question is, there is a specific command for switch from an FTS plugin to another or there is a bug in this procedure? Thanks
fts rescan actually just deletes fts indexes, it does not actually rescan anything.
to do full rescan, you need to
doveadm fts rescan -u user doveadm index -u user "*"
To be a bit more exact (at least for flatcurve), doveadm fts rescan deletes all messages above the lowest, non-indexed UID.
Unfortunately, the current Dovecot FTS API does not allow those deleted indices to be indexed programatically, so it requires a separate, external trigger to index the UIDs. So, Aki's command chain is the necessary series of commands that are needed at the current time.
This brings up an old TODO I had in looking into what it would take to trigger indexing via the internal API. Or whether that's even a good idea.
michael
participants (3)
-
Aki Tuomi
-
Alessio Cecchi
-
Michael Slusarz