Pierre Padovani created ATLAS-2478: -------------------------------------- Summary: Elasticsearch support is broken for JanusGraph Key: ATLAS-2478 URL: https://issues.apache.org/jira/browse/ATLAS-2478 Project: Atlas Issue Type: Bug Components: atlas-core Affects Versions: 1.0.0-alpha Reporter: Pierre Padovani Assignee: Pierre Padovani Fix For: 1.0.0
With JanusGraph the Elasticsearch support moved to 5.x+. This introduced a change where fields that contained '.' (dots) were not allowed unless either a specific cluster wide setting was enabled AND the mapping was formatted such that each of the fields that contained a '.' could be considered part of an object. Example: {code:java} foo.x foo.y foo.z{code} Elasticsearch looks at these fields as if they are truly: {code:java} foo : { x, y, z }{code} In the file: /atlas/common/src/main/java/org/apache/atlas/repository/Constants.java {code:java} /** * Properties for type store graph. */ public static final String TYPE_CATEGORY_PROPERTY_KEY = INTERNAL_PROPERTY_KEY_PREFIX + "type.category"; public static final String VERTEX_TYPE_PROPERTY_KEY = INTERNAL_PROPERTY_KEY_PREFIX + "type"; public static final String TYPENAME_PROPERTY_KEY = INTERNAL_PROPERTY_KEY_PREFIX + "type.name"; public static final String TYPEDESCRIPTION_PROPERTY_KEY = INTERNAL_PROPERTY_KEY_PREFIX + "type.description"; public static final String TYPEVERSION_PROPERTY_KEY = INTERNAL_PROPERTY_KEY_PREFIX + "type.version"; public static final String TYPEOPTIONS_PROPERTY_KEY = INTERNAL_PROPERTY_KEY_PREFIX + "type.options"; {code} These are the only fields that cause Elasticsearch issue. As you can see a field called 'type' is created, then additional fields type.name, type.description etc. This will cause a mapping conflict exception in Elasticsearch and it will refuse to create the mapping. The easy fix is to simply replace the '.' with an '_' (underscore) but this will be a backwards incompatible change for existing customers. -- This message was sent by Atlassian JIRA (v7.6.3#76005)