问题描述
出于测试目的,我将一些.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。