Mercurial > dovecot > core-2.2
changeset 19649:096ae156e688
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.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 27 Jan 2016 00:35:34 +0200 |
parents | 40298bc52160 |
children | 44b26f969840 |
files | src/plugins/fts-solr/fts-backend-solr-old.c src/plugins/fts-solr/fts-backend-solr.c |
diffstat | 2 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts-solr/fts-backend-solr-old.c Tue Jan 26 23:51:16 2016 +0200 +++ b/src/plugins/fts-solr/fts-backend-solr-old.c Wed Jan 27 00:35:34 2016 +0200 @@ -699,7 +699,7 @@ &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_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)) {
--- a/src/plugins/fts-solr/fts-backend-solr.c Tue Jan 26 23:51:16 2016 +0200 +++ b/src/plugins/fts-solr/fts-backend-solr.c Wed Jan 27 00:35:34 2016 +0200 @@ -822,7 +822,7 @@ 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 @@ 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)) {