当我在TinkerGrapg中存储一个顶点时,我看到ids是长的:
{TinkerVertex@7955} "v[304]"当我这么做时:
graph.V(304).next(); 不管用!
当我这么做时:
graph.V("304").next(); 不管用!
当我这么做时:
graph.V(304l).next(); 或
graph.V(new Long(304)).next();它起作用了!
我试图对TinkerGraph和DSE Graph..The使用相同的Gremlin代码,问题是一个返回long,另一个返回字符串。
我很好奇如何使同一个Gremlin同时使用int/long和String ids。这是API的问题吗?
谢谢!
发布于 2016-12-30 12:17:58
TinkerGraph使用和IdManager可以将标识符强制转换为不同类型。您可以阅读更多关于该这里的信息,但基本上,如果您希望让g.V(1)和g.V(1L)都返回一个值,您将希望按如下方式配置您的TinkerGraph:
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时,也可以这样做。
gremlin> g.V("2")
==>v[2]如果您愿意,可以将自己的IdManager实现指定为TinkerGraph --只需将完全限定的类名提供给配置(即,而不是"LONG")。
https://stackoverflow.com/questions/41393596
复制相似问题