dovecot-2.0: solr: Don't use "any" copyfield, it doubles the ind...

dovecot at dovecot.org dovecot at dovecot.org
Wed Jun 17 19:44:57 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/1492d688d8a9
changeset: 9488:1492d688d8a9
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Jun 17 12:44:33 2009 -0400
description:
solr: Don't use "any" copyfield, it doubles the index size.

diffstat:

2 files changed, 7 insertions(+), 5 deletions(-)
doc/solr-schema.xml                     |    3 ---
src/plugins/fts-solr/fts-backend-solr.c |    9 +++++++--

diffs (38 lines):

diff -r a33722839adf -r 1492d688d8a9 doc/solr-schema.xml
--- a/doc/solr-schema.xml	Tue Jun 16 18:55:11 2009 -0400
+++ b/doc/solr-schema.xml	Wed Jun 17 12:44:33 2009 -0400
@@ -50,9 +50,6 @@ want to modify the tokenizers and filter
    <field name="any" type="text" indexed="true" stored="false" multiValued="true" />
  </fields>
 
- <copyField source="hdr" dest="any" />
- <copyField source="body" dest="any" />
-
  <uniqueKey>id</uniqueKey>
  <defaultSearchField>any</defaultSearchField>
  <solrQueryParser defaultOperator="AND" />
diff -r a33722839adf -r 1492d688d8a9 src/plugins/fts-solr/fts-backend-solr.c
--- a/src/plugins/fts-solr/fts-backend-solr.c	Tue Jun 16 18:55:11 2009 -0400
+++ b/src/plugins/fts-solr/fts-backend-solr.c	Wed Jun 17 12:44:33 2009 -0400
@@ -752,14 +752,19 @@ static int fts_backend_solr_lookup(struc
 			/* body only */
 			i_assert((fields[i].flags & FTS_LOOKUP_FLAG_BODY) != 0);
 			str_append(str, "body:");
+			solr_quote_http(str, fields[i].key);
 		} else if ((fields[i].flags & FTS_LOOKUP_FLAG_BODY) == 0) {
 			/* header only */
 			str_append(str, "hdr:");
+			solr_quote_http(str, fields[i].key);
 		} else {
 			/* both */
-			str_append(str, "any:");
+			str_append(str, "(body:");
+			solr_quote_http(str, fields[i].key);
+			str_append(str, "+OR+hdr:");
+			solr_quote_http(str, fields[i].key);
+			str_append_c(str, ')');
 		}
-		solr_quote_http(str, fields[i].key);
 	}
 
 	/* use a separate filter query for selecting the mailbox. it shouldn't


More information about the dovecot-cvs mailing list