首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过ID访问特定顶点,请在Gremlin控制台中使用TinkerGraph

无法通过ID访问特定顶点,请在Gremlin控制台中使用TinkerGraph
EN

Stack Overflow用户
提问于 2018-09-18 15:27:46
回答 1查看 970关注 0票数 3

我不能通过执行g.V(3640).valueMap(true).unfold()来选择特定的顶点。在g.V()命令中的括号之间包含ID的任何命令似乎都不起作用。

我就是这样做的:

我是图数据库和Gremlin控制台实验的新手。我首先创建了一个实例:

代码语言:javascript
复制
graph = TinkerGraph.open()
g=graph.traversal()

并通过导入.graphml数据库文件加载示例数据:

代码语言:javascript
复制
g.io(graphml()).readGraph('/full/path/to/air-routes-latest.graphml')

这似乎很好,因为一次计数可以得到一个很好的结果。

代码语言:javascript
复制
gremlin> g.V().count()
==>3642

不幸的是,以下内容不起作用:

代码语言:javascript
复制
gremlin> g.V(3640).valueMap(true).unfold()

我认为这很奇怪,因为通过执行以下命令

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

ID似乎确实存在。知道为什么我不能访问特定的ID吗?我尝试了不同的命令,但是g.V()似乎工作得很好,而g.V(3640)却没有。是因为我使用的是TinkerGraph而不是Gremlin数据库,有什么问题吗?

编辑:

似乎我的id被保存为字符串,因为g.V("2").valueMap(true).unfold()确实给出了结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 15:35:33

我认为您可能对标识符的“类型”有问题。我怀疑如果你这样做了:

代码语言:javascript
复制
g.V(3640L)

你会得到你想要的顶点。默认情况下,TinkerGraph使用equals()处理id相等,所以如果您试图在id是长的时候找到一个整数,它就会表现得好像不存在一样。如果您愿意,可以使用讨论过的IdManager配置修改默认设置。注意,这一点在实用Gremlin中也有更详细的讨论。

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

https://stackoverflow.com/questions/52389980

复制
相关文章

相似问题

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