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 <[email protected]> Authored: Fri Nov 25 14:16:13 2016 +0100 Committer: Serge Huber <[email protected]> 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 ----------------------------------------------------------------------
