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('^');