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) {
