From e99ffa6abd201ca6ebfdf609bb24e48327a86450 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 7 Aug 2015 13:32:02 +0300 Subject: [PATCH] fts-solr: "highest UID for mailbox" lookup was actually returning "highest UID for user" If the default operator was OR instead of AND. This affected indexing mails in newly created mailboxes. --- src/plugins/fts-solr/fts-backend-solr-old.c | 4 ++-- src/plugins/fts-solr/fts-backend-solr.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/fts-solr/fts-backend-solr-old.c b/src/plugins/fts-solr/fts-backend-solr-old.c index d57d0317fd..dbaf062538 100644 --- a/src/plugins/fts-solr/fts-backend-solr-old.c +++ b/src/plugins/fts-solr/fts-backend-solr-old.c @@ -306,10 +306,10 @@ fts_backend_solr_get_last_uid_fallback(struct solr_fts_backend *backend, box_name = fts_box_get_root(box, &ns); mailbox_get_open_status(box, STATUS_UIDVALIDITY, &status); - str_printfa(str, "uidv:%u+box:", status.uidvalidity); + str_printfa(str, "uidv:%u+AND+box:", status.uidvalidity); solr_quote_http(str, box_name); solr_add_ns_query_http(str, backend, ns); - str_append(str, "+user:"); + str_append(str, "+AND+user:"); solr_quote_http(str, ns->user->username); pool = pool_alloconly_create("solr last uid lookup", 1024); diff --git a/src/plugins/fts-solr/fts-backend-solr.c b/src/plugins/fts-solr/fts-backend-solr.c index f0e19e9574..f7c90547a4 100644 --- a/src/plugins/fts-solr/fts-backend-solr.c +++ b/src/plugins/fts-solr/fts-backend-solr.c @@ -202,7 +202,7 @@ get_last_uid_fallback(struct fts_backend *_backend, struct mailbox *box, if (fts_mailbox_get_guid(box, &box_guid) < 0) return -1; - str_printfa(str, "box:%s+user:", box_guid); + str_printfa(str, "box:%s+AND+user:", box_guid); if (_backend->ns->owner != NULL) solr_quote_http(str, _backend->ns->owner->username); else -- 2.47.3