Author: tommaso
Date: Thu Mar 27 14:40:38 2014
New Revision: 1582327

URL: http://svn.apache.org/r1582327
Log:
OAK-1630 - fixed AND/OR full text expressions handling

Modified:
    
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java

Modified: 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java?rev=1582327&r1=1582326&r2=1582327&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java
 Thu Mar 27 14:40:38 2014
@@ -229,12 +229,14 @@ public class SolrQueryIndex implements F
             public boolean visit(FullTextOr or) {
                 fullTextString.append('(');
                 for (int i = 0; i < or.list.size(); i++) {
-                    FullTextExpression e = or.list.get(i);
-                    String orTerm = getFullTextQuery(e);
-                    fullTextString.append(orTerm);
                     if (i > 0 && i < or.list.size()) {
                         fullTextString.append(" OR ");
                     }
+                    FullTextExpression e = or.list.get(i);
+                    String orTerm = getFullTextQuery(e);
+                    fullTextString.append('(');
+                    fullTextString.append(orTerm);
+                    fullTextString.append(')');
                 }
                 fullTextString.append(')');
                 fullTextString.append(' ');
@@ -245,12 +247,14 @@ public class SolrQueryIndex implements F
             public boolean visit(FullTextAnd and) {
                 fullTextString.append('(');
                 for (int i = 0; i < and.list.size(); i++) {
-                    FullTextExpression e = and.list.get(i);
-                    String andTerm = getFullTextQuery(e);
-                    fullTextString.append(andTerm);
                     if (i > 0 && i < and.list.size()) {
                         fullTextString.append(" AND ");
                     }
+                    FullTextExpression e = and.list.get(i);
+                    String andTerm = getFullTextQuery(e);
+                    fullTextString.append('(');
+                    fullTextString.append(andTerm);
+                    fullTextString.append(')');
                 }
                 fullTextString.append(')');
                 fullTextString.append(' ');
@@ -271,7 +275,7 @@ public class SolrQueryIndex implements F
                 }
                 fullTextString.append(p);
                 fullTextString.append(':');
-                fullTextString.append(term.getText());
+                fullTextString.append(partialEscape(term.getText()));
                 String boost = term.getBoost();
                 if (boost != null) {
                     fullTextString.append('^');


Reply via email to