首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ids作为字符串与Long时的TinkerGraph检索不一致性

使用ids作为字符串与Long时的TinkerGraph检索不一致性
EN

Stack Overflow用户
提问于 2016-12-30 09:14:47
回答 1查看 178关注 0票数 0

当我在TinkerGrapg中存储一个顶点时,我看到ids是长的:

代码语言:javascript
复制
{TinkerVertex@7955} "v[304]"

当我这么做时:

代码语言:javascript
复制
graph.V(304).next(); 

不管用!

当我这么做时:

代码语言:javascript
复制
graph.V("304").next(); 

不管用!

当我这么做时:

代码语言:javascript
复制
graph.V(304l).next(); 

代码语言:javascript
复制
graph.V(new Long(304)).next();

它起作用了!

我试图对TinkerGraph和DSE Graph..The使用相同的Gremlin代码,问题是一个返回long,另一个返回字符串。

我很好奇如何使同一个Gremlin同时使用int/long和String ids。这是API的问题吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-30 12:17:58

TinkerGraph使用和IdManager可以将标识符强制转换为不同类型。您可以阅读更多关于该这里的信息,但基本上,如果您希望让g.V(1)g.V(1L)都返回一个值,您将希望按如下方式配置您的TinkerGraph:

代码语言:javascript
复制
gremlin> conf = new BaseConfiguration()
==>org.apache.commons.configuration.BaseConfiguration@552518c3
gremlin> conf.setProperty('gremlin.tinkergraph.vertexIdManager',"LONG")
gremlin> graph = TinkerGraph.open(conf)
==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV(id, 1L)
==>v[1]
gremlin> g.addV(id, 2)
==>v[2]
gremlin> g.V(1)
==>v[1]
gremlin> g.V(1L)
==>v[1]
gremlin> g.V(2L)
==>v[2]
gremlin> g.V(2)
==>v[2]

事实上,即使当您使用IdManager时,也可以这样做。

代码语言:javascript
复制
gremlin> g.V("2")
==>v[2]

如果您愿意,可以将自己的IdManager实现指定为TinkerGraph --只需将完全限定的类名提供给配置(即,而不是"LONG")。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41393596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档