Repository: incubator-unomi Updated Branches: refs/heads/feature-UNOMI-70-ES5X ac2c9ba5c -> 294239313
UNOMI-70 : Moved keyword field test to elasticsearch service Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/29423931 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/29423931 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/29423931 Branch: refs/heads/feature-UNOMI-70-ES5X Commit: 2942393130484159114c4824e49b815f6d45d981 Parents: ac2c9ba Author: Thomas Draier <[email protected]> Authored: Wed Dec 21 17:05:11 2016 +0100 Committer: Thomas Draier <[email protected]> Committed: Wed Dec 21 17:05:11 2016 +0100 ---------------------------------------------------------------------- .../ElasticSearchPersistenceServiceImpl.java | 39 +++++++++++--------- .../services/services/GoalsServiceImpl.java | 7 ---- .../services/services/QueryServiceImpl.java | 7 ---- 3 files changed, 21 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/29423931/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java ---------------------------------------------------------------------- diff --git a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java index e7ed75b..6c1d8e0 100644 --- a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java +++ b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java @@ -24,10 +24,7 @@ import org.apache.karaf.cellar.core.*; import org.apache.karaf.cellar.core.control.SwitchStatus; import org.apache.karaf.cellar.core.event.EventProducer; import org.apache.karaf.cellar.core.event.EventType; -import org.apache.unomi.api.ClusterNode; -import org.apache.unomi.api.Item; -import org.apache.unomi.api.PartialList; -import org.apache.unomi.api.TimestampedItem; +import org.apache.unomi.api.*; import org.apache.unomi.api.conditions.Condition; import org.apache.unomi.api.query.DateRange; import org.apache.unomi.api.query.IpRange; @@ -1075,6 +1072,17 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, return null; } + private String getPropertyNameWithData(String name, String itemType) { + Map<String,Object> propertyMapping = getPropertyMapping(name,itemType); + if (propertyMapping != null + && "text".equals(propertyMapping.get("type")) + && propertyMapping.containsKey("fields") + && ((Map)propertyMapping.get("fields")).containsKey("keyword")) { + name += ".keyword"; + } + return name; + } + public boolean saveQuery(final String queryName, final String query) { return new InClassLoaderExecute<Boolean>() { protected Boolean execute(Object... args) { @@ -1279,14 +1287,7 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, requestBuilder = requestBuilder.addSort(distanceSortBuilder.order(SortOrder.ASC)); } } else { - String name = StringUtils.substringBeforeLast(sortByElement,":"); - Map<String,Object> propertyMapping = getPropertyMapping(name,itemType); - if (propertyMapping != null - && "text".equals(propertyMapping.get("type")) - && propertyMapping.containsKey("fields") - && ((Map)propertyMapping.get("fields")).containsKey("keyword")) { - name += ".keyword"; - } + String name = getPropertyNameWithData(StringUtils.substringBeforeLast(sortByElement,":"), itemType); if (sortByElement.endsWith(":desc")) { requestBuilder = requestBuilder.addSort(name, SortOrder.DESC); } else { @@ -1397,15 +1398,16 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, if (aggregate != null) { AggregationBuilder bucketsAggregation = null; + String fieldName = aggregate.getField(); if (aggregate instanceof DateAggregate) { DateAggregate dateAggregate = (DateAggregate) aggregate; - DateHistogramAggregationBuilder dateHistogramBuilder = AggregationBuilders.dateHistogram("buckets").field(aggregate.getField()).dateHistogramInterval(new DateHistogramInterval((dateAggregate.getInterval()))); + DateHistogramAggregationBuilder dateHistogramBuilder = AggregationBuilders.dateHistogram("buckets").field(fieldName).dateHistogramInterval(new DateHistogramInterval((dateAggregate.getInterval()))); if (dateAggregate.getFormat() != null) { dateHistogramBuilder.format(dateAggregate.getFormat()); } bucketsAggregation = dateHistogramBuilder; } else if (aggregate instanceof NumericRangeAggregate) { - RangeAggregationBuilder rangebuilder = AggregationBuilders.range("buckets").field(aggregate.getField()); + RangeAggregationBuilder rangebuilder = AggregationBuilders.range("buckets").field(fieldName); for (NumericRange range : ((NumericRangeAggregate) aggregate).getRanges()) { if (range != null) { if (range.getFrom() != null && range.getTo() != null) { @@ -1420,7 +1422,7 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, bucketsAggregation = rangebuilder; } else if (aggregate instanceof DateRangeAggregate) { DateRangeAggregate dateRangeAggregate = (DateRangeAggregate) aggregate; - DateRangeAggregationBuilder rangebuilder = AggregationBuilders.dateRange("buckets").field(aggregate.getField()); + DateRangeAggregationBuilder rangebuilder = AggregationBuilders.dateRange("buckets").field(fieldName); if (dateRangeAggregate.getFormat() != null) { rangebuilder.format(dateRangeAggregate.getFormat()); } @@ -1432,7 +1434,7 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, bucketsAggregation = rangebuilder; } else if (aggregate instanceof IpRangeAggregate) { IpRangeAggregate ipRangeAggregate = (IpRangeAggregate) aggregate; - IpRangeAggregationBuilder rangebuilder = AggregationBuilders.ipRange("buckets").field(aggregate.getField()); + IpRangeAggregationBuilder rangebuilder = AggregationBuilders.ipRange("buckets").field(fieldName); for (IpRange range : ipRangeAggregate.getRanges()) { if (range != null) { rangebuilder.addRange(range.getKey(), range.getFrom(), range.getTo()); @@ -1440,11 +1442,12 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, } bucketsAggregation = rangebuilder; } else { + fieldName = getPropertyNameWithData(fieldName, itemType); //default - bucketsAggregation = AggregationBuilders.terms("buckets").field(aggregate.getField()).size(5000); + bucketsAggregation = AggregationBuilders.terms("buckets").field(fieldName).size(5000); } if (bucketsAggregation != null) { - final MissingAggregationBuilder missingBucketsAggregation = AggregationBuilders.missing("missing").field(aggregate.getField()); + final MissingAggregationBuilder missingBucketsAggregation = AggregationBuilders.missing("missing").field(fieldName); for (AggregationBuilder aggregationBuilder : lastAggregation) { bucketsAggregation.subAggregation(aggregationBuilder); missingBucketsAggregation.subAggregation(aggregationBuilder); http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/29423931/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java ---------------------------------------------------------------------- diff --git a/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java index a6bd1d6..a5af23f 100644 --- a/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java +++ b/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java @@ -493,13 +493,6 @@ public class GoalsServiceImpl implements GoalsService, SynchronousBundleListener } if(aggregate == null){ - Map<String,Object> propertyMapping = persistenceService.getPropertyMapping(property, Session.ITEM_TYPE); - if (propertyMapping != null - && "text".equals(propertyMapping.get("type")) - && propertyMapping.containsKey("fields") - && ((Map)propertyMapping.get("fields")).containsKey("keyword")) { - property += ".keyword"; - } aggregate = new TermsAggregate(property); } } http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/29423931/services/src/main/java/org/apache/unomi/services/services/QueryServiceImpl.java ---------------------------------------------------------------------- diff --git a/services/src/main/java/org/apache/unomi/services/services/QueryServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/QueryServiceImpl.java index 30e6dab..33e4f47 100644 --- a/services/src/main/java/org/apache/unomi/services/services/QueryServiceImpl.java +++ b/services/src/main/java/org/apache/unomi/services/services/QueryServiceImpl.java @@ -83,13 +83,6 @@ public class QueryServiceImpl implements QueryService { } // fall back on terms aggregate - Map<String,Object> propertyMapping = persistenceService.getPropertyMapping( property, itemType); - if (propertyMapping != null - && "text".equals(propertyMapping.get("type")) - && propertyMapping.containsKey("fields") - && ((Map)propertyMapping.get("fields")).containsKey("keyword")) { - property += ".keyword"; - } return persistenceService.aggregateQuery(query.getCondition(), new TermsAggregate(property), itemType); }
