Author: thomasm
Date: Wed Nov 2 12:29:40 2016
New Revision: 1767658
URL: http://svn.apache.org/viewvc?rev=1767658&view=rev
Log:
OAK-4788 Fulltext parser sorts and unique-s parsed terms
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextAnd.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextOr.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/ast/FullTextTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextAnd.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextAnd.java?rev=1767658&r1=1767657&r2=1767658&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextAnd.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextAnd.java
Wed Nov 2 12:29:40 2016
@@ -45,7 +45,7 @@ public class FullTextAnd extends FullTex
@Override
public FullTextExpression simplify() {
- Set<FullTextExpression> set = FullTextOr.getSortedAndUniqueSet(list);
+ Set<FullTextExpression> set = FullTextOr.getUniqueSet(list);
if (set.size() == 1) {
return set.iterator().next();
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextOr.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextOr.java?rev=1767658&r1=1767657&r2=1767658&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextOr.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/fulltext/FullTextOr.java
Wed Nov 2 12:29:40 2016
@@ -19,10 +19,9 @@
package org.apache.jackrabbit.oak.query.fulltext;
import java.util.ArrayList;
-import java.util.Comparator;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import java.util.TreeSet;
/**
* A fulltext "or" condition.
@@ -47,7 +46,7 @@ public class FullTextOr extends FullText
@Override
public FullTextExpression simplify() {
- Set<FullTextExpression> set = getSortedAndUniqueSet(list);
+ Set<FullTextExpression> set = getUniqueSet(list);
if (set.size() == 1) {
return set.iterator().next();
}
@@ -57,18 +56,10 @@ public class FullTextOr extends FullText
return new FullTextOr(l);
}
- static Set<FullTextExpression> getSortedAndUniqueSet(
+ static Set<FullTextExpression> getUniqueSet(
List<FullTextExpression> list) {
- // sort and remove duplicates
- TreeSet<FullTextExpression> set = new TreeSet<FullTextExpression>(
- new Comparator<FullTextExpression>() {
-
- @Override
- public int compare(FullTextExpression o1,
- FullTextExpression o2) {
- return o1.toString().compareTo(o2.toString());
- }
- });
+ // remove duplicates, but keep order
+ LinkedHashSet<FullTextExpression> set = new
LinkedHashSet<FullTextExpression>(list.size());
for (int i = 0; i < list.size(); i++) {
set.add(list.get(i).simplify());
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/ast/FullTextTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/ast/FullTextTest.java?rev=1767658&r1=1767657&r2=1767658&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/ast/FullTextTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/ast/FullTextTest.java
Wed Nov 2 12:29:40 2016
@@ -71,9 +71,11 @@ public class FullTextTest {
assertEquals("\"-\"", convertPattern("- "));
assertEquals("\"-\"", convertPattern("- -"));
assertEquals("\"-\" \"hello\"", convertPattern("- hello"));
- assertEquals("\"-\" \"hello\" \"world\"", convertPattern("hello -
world"));
- assertEquals("\"-\" \"hello\" \"world\"", convertPattern("hello -
world"));
- assertEquals("\"-\" \"hello\"", convertPattern("hello -"));
+ assertEquals("\"hello\" \"-\" \"world\"", convertPattern("hello -
world"));
+ assertEquals("\"hello\" \"-\" \"world\"", convertPattern("hello -
world"));
+ assertEquals("\"hello\" \"-\"", convertPattern("hello -"));
+ assertEquals("\"hello\" \"-\"", convertPattern("hello -"));
+ assertEquals("\"hello\" \"-\"", convertPattern("hello - hello"));
assertTrue(test("-", "hello - world"));
assertTrue(test("- ", "hello - world"));