This is an automated email from the ASF dual-hosted git repository.

taybou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/master by this push:
     new dc88114  UNOMI - 355 Add long value type (#170)
dc88114 is described below

commit dc88114313653f128e21929c7283f40d0b3e95db
Author: Serge Huber <[email protected]>
AuthorDate: Fri Jun 26 12:41:37 2020 +0200

    UNOMI - 355 Add long value type (#170)
---
 .../router/core/processor/LineSplitProcessor.java   |  2 ++
 .../unomi/graphql/schema/GraphQLSchemaProvider.java |  3 +++
 .../unomi/graphql/schema/PropertyFilterUtils.java   | 21 +++++++++++++++++++++
 .../ElasticSearchPersistenceServiceImpl.java        | 11 +++++++++++
 .../cxs/properties/profiles/personal/age.json       |  2 +-
 .../cxs/properties/profiles/system/nbOfVisits.json  |  2 +-
 .../main/resources/META-INF/cxs/values/long.json    |  3 +++
 7 files changed, 42 insertions(+), 2 deletions(-)

diff --git 
a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
 
b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
index 289ae39..94c60e9 100644
--- 
a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
+++ 
b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
@@ -142,6 +142,8 @@ public class LineSplitProcessor implements Processor {
                             properties.put(fieldMappingKey, new 
Boolean(profileData[fieldsMapping.get(fieldMappingKey)].trim()));
                         } else if 
(propertyType.getValueTypeId().equals("integer")) {
                             properties.put(fieldMappingKey, new 
Integer(profileData[fieldsMapping.get(fieldMappingKey)].trim()));
+                        } else if 
(propertyType.getValueTypeId().equals("long")) {
+                            properties.put(fieldMappingKey, new 
Long(profileData[fieldsMapping.get(fieldMappingKey)].trim()));
                         }
                     } catch (Throwable t) {
                         logger.error("Error converting profileData", t);
diff --git 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
index 94bd1b8..4cbd993 100644
--- 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
+++ 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
@@ -706,6 +706,9 @@ public class GraphQLSchemaProvider {
             case "integer":
                 graphQLType = Scalars.GraphQLInt;
                 break;
+            case "long":
+                graphQLType = Scalars.GraphQLLong;
+                break;
             case "float":
                 graphQLType = Scalars.GraphQLFloat;
                 break;
diff --git 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/PropertyFilterUtils.java
 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/PropertyFilterUtils.java
index 2cdf12a..436193a 100644
--- 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/PropertyFilterUtils.java
+++ 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/PropertyFilterUtils.java
@@ -71,6 +71,27 @@ public class PropertyFilterUtils {
                     .name(propertyName + "_gte")
                     .type(Scalars.GraphQLInt)
                     .build());
+        } else if ("long".equals(propertyType.getValueTypeId())) {
+            fieldDefinitions.add(GraphQLInputObjectField.newInputObjectField()
+                    .name(propertyName + "_equals")
+                    .type(Scalars.GraphQLLong)
+                    .build());
+            fieldDefinitions.add(GraphQLInputObjectField.newInputObjectField()
+                    .name(propertyName + "_lt")
+                    .type(Scalars.GraphQLLong)
+                    .build());
+            fieldDefinitions.add(GraphQLInputObjectField.newInputObjectField()
+                    .name(propertyName + "_lte")
+                    .type(Scalars.GraphQLLong)
+                    .build());
+            fieldDefinitions.add(GraphQLInputObjectField.newInputObjectField()
+                    .name(propertyName + "_gt")
+                    .type(Scalars.GraphQLLong)
+                    .build());
+            fieldDefinitions.add(GraphQLInputObjectField.newInputObjectField()
+                    .name(propertyName + "_gte")
+                    .type(Scalars.GraphQLLong)
+                    .build());
         } else if ("float".equals(propertyType.getValueTypeId())) {
 
             fieldDefinitions.add(GraphQLInputObjectField.newInputObjectField()
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 b1c7654..2506fa2 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
@@ -1190,6 +1190,15 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
     private Map<String, Object> createPropertyMapping(final String fieldName, 
final String fieldType) {
         final HashMap<String, Object> definition = new HashMap<>();
         definition.put("type", fieldType);
+        if ("text".equals(fieldType)) {
+            definition.put("analyzer", "folding");
+            final Map<String, Object> fields = new HashMap<>();
+            final Map<String, Object> keywordField = new HashMap<>();
+            keywordField.put("type", "keyword");
+            keywordField.put("ignore_above", 256);
+            fields.put("keyword", keywordField);
+            definition.put("fields", fields);
+        }
 
         final HashMap<String, Object> map = new HashMap<>();
         map.put(fieldName, definition);
@@ -1206,6 +1215,8 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
                 return "geo_point";
             case "integer":
                 return "integer";
+            case "long" :
+                return "long";
             case "float":
                 return "float";
             case "date":
diff --git 
a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
 
b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
index d0ef96e..6ea67ca 100644
--- 
a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
+++ 
b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
@@ -8,7 +8,7 @@
       "personalProfileProperties"
     ]
   },
-  "type": "integer",
+  "type": "long",
   "defaultValue": "",
   "numericRanges": [
     {"key":"*_10", "to" : 10 },
diff --git 
a/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
 
b/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
index 25180f1..d9a371b 100644
--- 
a/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
+++ 
b/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
@@ -8,7 +8,7 @@
         "systemProfileProperties"
       ]
     },
-    "type": "integer",
+    "type": "long",
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "numericRanges": [
diff --git a/services/src/main/resources/META-INF/cxs/values/long.json 
b/services/src/main/resources/META-INF/cxs/values/long.json
new file mode 100644
index 0000000..2626a8e
--- /dev/null
+++ b/services/src/main/resources/META-INF/cxs/values/long.json
@@ -0,0 +1,3 @@
+{
+  "id" : "long"
+}
\ No newline at end of file

Reply via email to