You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Madhan Neethiraj (JIRA)" <ji...@apache.org> on 2018/05/17 16:33:00 UTC
[jira] [Updated] (ATLAS-2478) Elasticsearch support (Tech Preview)
is broken for JanusGraph
[ https://issues.apache.org/jira/browse/ATLAS-2478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Madhan Neethiraj updated ATLAS-2478:
------------------------------------
Summary: Elasticsearch support (Tech Preview) is broken for JanusGraph (was: Elasticsearch support is broken for JanusGraph)
> Elasticsearch support (Tech Preview) 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
> Priority: Major
> Fix For: 1.0.0
>
> Attachments: ATLAS-2478.patch
>
>
> 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)