Author: catholicon
Date: Wed May 11 12:16:38 2016
New Revision: 1743343
URL: http://svn.apache.org/viewvc?rev=1743343&view=rev
Log:
OAK-4359: Lucene query fails if search string contains = symbol
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java?rev=1743343&r1=1743342&r2=1743343&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
Wed May 11 12:16:38 2016
@@ -1371,7 +1371,7 @@ public class LucenePropertyIndex impleme
/**
* Following chars are used as operators in Lucene Query and should be
escaped
*/
- private static final char[] LUCENE_QUERY_OPERATORS = {':' , '/', '!', '&',
'|'};
+ private static final char[] LUCENE_QUERY_OPERATORS = {':' , '/', '!', '&',
'|', '='};
/**
* Following logic is taken from
org.apache.jackrabbit.core.query.lucene.JackrabbitQueryParser#parse(java.lang.String)
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java?rev=1743343&r1=1743342&r2=1743343&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java
Wed May 11 12:16:38 2016
@@ -2042,6 +2042,8 @@ public class LucenePropertyIndexTest ext
test.setProperty("tag", "stockphotography:business/business_abstract");
Tree test2 = root.getTree("/").addChild("test2");
test2.setProperty("tag", "foo!");
+ root.getTree("/").addChild("test3").setProperty("tag", "a=b");
+ root.getTree("/").addChild("test4").setProperty("tag", "c=d=e");
root.commit();
String propabQuery = "select * from [nt:base] where CONTAINS(tag, " +
@@ -2051,6 +2053,12 @@ public class LucenePropertyIndexTest ext
String query2 = "select * from [nt:base] where CONTAINS(tag, 'foo!')";
assertPlanAndQuery(query2, "lucene:test1(/oak:index/test1)",
asList("/test2"));
+ String query3 = "select * from [nt:base] where CONTAINS(tag, 'a=b')";
+ assertPlanAndQuery(query3, "lucene:test1(/oak:index/test1)",
asList("/test3"));
+
+ String query4 = "select * from [nt:base] where CONTAINS(tag, 'c=d=e')";
+ assertPlanAndQuery(query4, "lucene:test1(/oak:index/test1)",
asList("/test4"));
+
}
@Test