在TinkerGraph中使用字符串ID

问题描述

出于测试目的,我将一些.Net代码指向Tinkergraph,该代码在部署时会使用Neptune。我们的Neptune数据库使用字符串作为ID(始终为UUID,但为字符串对象)

当我从控制台查询图形特征时(我使用带有一些调整的标准docker映像),我看到:-

NumericIds: true,StringIds: true,UuidIds: true

我一直无法找到一种方法来使图形使用字符串作为ID。我管理的最好的办法就是将其切换为UUID。

gremlin.tinkergraph.vertexIdManager=UUID

gremlin.tinkergraph.edgeIdManager=UUID

gremlin.tinkergraph.vertexPropertyIdManager=UUID

这可以工作,但是这意味着我不得不将原始C#代码中的很多强制类型转换为.ToString(),并对使用动态代码代码做一些额外的工作。

理想情况下,我希望返回的ID是字符串,而不是System.Guid。

我在IdManager上浏览了Java代码,但看不到STRING。认实现中有一个吗?

解决方法

不是指定UUID或LONG,而是使用ANY来启用TinkerGraph的字符串ID。

可能的值在此文件中定义:https://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.DefaultIdManager.html