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

jsinovassinnaik pushed a commit to branch UNOMI-637-fix-mapping-creation
in repository https://gitbox.apache.org/repos/asf/unomi.git

commit e7c7b62b442a4f2c98c266688752336d2f96a8d8
Author: jsinovassin <[email protected]>
AuthorDate: Tue Aug 2 12:21:39 2022 +0200

    UNOMI-637 : do not create mapping for property type if not necessary
---
 .../elasticsearch/ElasticSearchPersistenceServiceImpl.java   | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

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 cd5183232..fcc95f791 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
@@ -1444,7 +1444,10 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
             }
             Map<String, Object> subMappings = 
mappings.computeIfAbsent("properties", k -> new HashMap<>());
             Map<String, Object> subSubMappings = (Map<String, Object>) 
subMappings.computeIfAbsent("properties", k -> new HashMap<>());
-            mergePropertiesMapping(subSubMappings, 
createPropertyMapping(property));
+            Map<String, Object> propertyMapping = 
createPropertyMapping(property);
+            if (propertyMapping != null) {
+                mergePropertiesMapping(subSubMappings, propertyMapping);
+            }
 
             Map<String, Object> mappingsWrapper = new HashMap<>();
             mappingsWrapper.put("properties", mappings);
@@ -1479,12 +1482,15 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
         if ("set".equals(property.getValueTypeId())) {
             Map<String, Object> childProperties = new HashMap<>();
             property.getChildPropertyTypes().forEach(childType -> {
-                mergePropertiesMapping(childProperties, 
createPropertyMapping(childType));
+                Map<String, Object> propertyMapping = 
createPropertyMapping(childType);
+                if (propertyMapping != null) {
+                    mergePropertiesMapping(childProperties, propertyMapping);
+                }
             });
             definition.put("properties", childProperties);
         }
 
-        return Collections.singletonMap(property.getItemId(), definition);
+        return !definition.isEmpty() ? 
Collections.singletonMap(property.getItemId(), definition) : null;
     }
 
     private String convertValueTypeToESType(String valueTypeId) {

Reply via email to