From: Timo Sirainen Date: Fri, 7 Aug 2015 10:32:02 +0000 (+0300) Subject: fts-solr: "highest UID for mailbox" lookup was actually returning "highest UID for... X-Git-Tag: 2.2.19.rc1~272 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e99ffa6abd201ca6ebfdf609bb24e48327a86450;p=thirdparty%2Fdovecot%2Fcore.git 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. --- 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