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