You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2016/11/25 13:26:34 UTC

[5/6] incubator-unomi git commit: Merge branch 'master' into feature-UNOMI-28-ES2X

Merge branch 'master' into feature-UNOMI-28-ES2X

# Conflicts:
#	plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/2524693c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/2524693c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/2524693c

Branch: refs/heads/feature-UNOMI-28-ES2X
Commit: 2524693c34beffddece4ee1b520e48aafe9552e0
Parents: 85f00e8 173c1eb
Author: Serge Huber <sh...@apache.org>
Authored: Fri Nov 25 14:16:13 2016 +0100
Committer: Serge Huber <sh...@apache.org>
Committed: Fri Nov 25 14:16:13 2016 +0100

----------------------------------------------------------------------
 .../unomi/privacy/internal/PrivacyServiceImpl.java    |  2 +-
 .../apache/unomi/itests/ConditionEvaluatorTest.java   |  2 +-
 .../conditions/PropertyConditionESQueryBuilder.java   | 14 ++++++++++++++
 .../conditions/PropertyConditionEvaluator.java        | 12 +++++++++++-
 4 files changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/2524693c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --cc plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
index 23f1df8,d2f77c0..cf58734
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionESQueryBuilder.java
@@@ -61,54 -60,56 +61,68 @@@ public class PropertyConditionESQueryBu
          switch (op) {
              case "equals":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.termFilter(name, value);
 +                return QueryBuilders.termQuery(name, value);
              case "notEquals":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.notFilter(FilterBuilders.termFilter(name, value));
 +                return QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery(name, value));
              case "greaterThan":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).gt(value);
 +                return QueryBuilders.rangeQuery(name).gt(value);
              case "greaterThanOrEqualTo":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).gte(value);
 +                return QueryBuilders.rangeQuery(name).gte(value);
              case "lessThan":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).lt(value);
 +                return QueryBuilders.rangeQuery(name).lt(value);
              case "lessThanOrEqualTo":
                  checkRequiredValue(value, name, op, false);
 -                return FilterBuilders.rangeFilter(name).lte(value);
 +                return QueryBuilders.rangeQuery(name).lte(value);
              case "between":
                  checkRequiredValuesSize(values, name, op, 2);
 -                return FilterBuilders.rangeFilter(name).gte(values.get(0)).lte(values.get(1));
 +                return QueryBuilders.rangeQuery(name).gte(values.get(0)).lte(values.get(1));
              case "exists":
 -                return FilterBuilders.existsFilter(name);
 +                return QueryBuilders.existsQuery(name);
              case "missing":
 -                return FilterBuilders.missingFilter(name);
 +                return QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery((name)));
              case "contains":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.regexpFilter(name, ".*" + expectedValue + ".*");
 +                return QueryBuilders.regexpQuery(name, ".*" + expectedValue + ".*");
              case "startsWith":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.prefixFilter(name, expectedValue);
 +                return QueryBuilders.prefixQuery(name, expectedValue);
              case "endsWith":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.regexpFilter(name, ".*" + expectedValue);
 +                return QueryBuilders.regexpQuery(name, ".*" + expectedValue);
              case "matchesRegex":
                  checkRequiredValue(expectedValue, name, op, false);
 -                return FilterBuilders.regexpFilter(name, expectedValue);
 +                return QueryBuilders.regexpQuery(name, expectedValue);
              case "in":
                  checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.inFilter(name, values.toArray());
 +                return QueryBuilders.termsQuery(name, values.toArray());
              case "notIn":
                  checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.notFilter(FilterBuilders.inFilter(name, values.toArray()));
 +                return QueryBuilders.boolQuery().mustNot(QueryBuilders.termsQuery(name, values.toArray()));
              case "all":
                  checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.termsFilter(name, values.toArray()).execution("and");
 +                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
 +                for (Object curValue : values) {
 +                    boolQueryBuilder.must(QueryBuilders.termQuery(name, curValue));
 +                }
 +                return boolQueryBuilder;
+             case "hasSomeOf":
+                 checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.termsFilter(name, values.toArray()).execution("or");
++                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
++                for (Object curValue : values) {
++                    boolQueryBuilder.should(QueryBuilders.termQuery(name, curValue));
++                }
++                return boolQueryBuilder;
+             case "hasNoneOf":
+                 checkRequiredValue(values, name, op, true);
 -                return FilterBuilders.notFilter(FilterBuilders.termsFilter(name, values.toArray()).execution("or"));
++                BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
++                for (Object curValue : values) {
++                    boolQueryBuilder.mustNot(QueryBuilders.termQuery(name, curValue));
++                }
++                return boolQueryBuilder;
              case "isDay":
                  checkRequiredValue(value, name, op, false);
                  return getIsSameDayRange(value, name);

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/2524693c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
----------------------------------------------------------------------