From f3b0efdcbd0bd9059574c8f86d6cb43e16c8e521 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 27 Jan 2016 00:35:34 +0200 Subject: [PATCH] fts-solr: Changed default operator to AND to fix multi-word queries. Previously for example searching from:foo@example.com was expanded to foo OR example OR com. Now it's foo AND example AND com, which makes a lot more sense. --- src/plugins/fts-solr/fts-backend-solr-old.c | 4 ++-- src/plugins/fts-solr/fts-backend-solr.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/fts-solr/fts-backend-solr-old.c b/src/plugins/fts-solr/fts-backend-solr-old.c index 719db4e94b..c377644142 100644 --- a/src/plugins/fts-solr/fts-backend-solr-old.c +++ b/src/plugins/fts-solr/fts-backend-solr-old.c @@ -699,7 +699,7 @@ fts_backend_solr_lookup(struct fts_backend *_backend, struct mailbox *box, &status); str = t_str_new(256); - str_printfa(str, "fl=uid,score&rows=%u&sort=uid+asc&q=", + str_printfa(str, "fl=uid,score&rows=%u&sort=uid+asc&q={!lucene+q.op%%3dAND}", status.uidnext); if (!solr_add_definite_query_args(str, args, and_args)) { @@ -832,7 +832,7 @@ fts_backend_solr_lookup_multi(struct fts_backend *_backend, fts_solr_set_default_ns(backend); str = t_str_new(256); - str_printfa(str, "fl=ns,box,uidv,uid,score&rows=%u&sort=box+asc,uid+asc&q=", + str_printfa(str, "fl=ns,box,uidv,uid,score&rows=%u&sort=box+asc,uid+asc&q={!lucene+q.op%%3dAND}", SOLR_MAX_MULTI_ROWS); if (solr_add_definite_query_args(str, args, and_args)) { diff --git a/src/plugins/fts-solr/fts-backend-solr.c b/src/plugins/fts-solr/fts-backend-solr.c index 949db5610e..3c2da2f73a 100644 --- a/src/plugins/fts-solr/fts-backend-solr.c +++ b/src/plugins/fts-solr/fts-backend-solr.c @@ -822,7 +822,7 @@ fts_backend_solr_lookup(struct fts_backend *_backend, struct mailbox *box, mailbox_get_open_status(box, STATUS_UIDNEXT, &status); str = t_str_new(256); - str_printfa(str, "fl=uid,score&rows=%u&sort=uid+asc&q=", + str_printfa(str, "fl=uid,score&rows=%u&sort=uid+asc&q={!lucene+q.op%%3dAND}", status.uidnext); prefix_len = str_len(str); @@ -931,7 +931,7 @@ fts_backend_solr_lookup_multi(struct fts_backend *backend, string_t *str; str = t_str_new(256); - str_printfa(str, "fl=box,uid,score&rows=%u&sort=box+asc,uid+asc&q=", + str_printfa(str, "fl=box,uid,score&rows=%u&sort=box+asc,uid+asc&q={!lucene+q.op%%3dAND}", SOLR_MAX_MULTI_ROWS); if (solr_add_definite_query_args(str, args, and_args)) { -- 2.47.3