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);
         }
 

Reply via email to