想获取标签名称但 return id,是否需要更改 gremlin 语句?

Wanna get label name but return id,if need change gremlin sentence?

使用 gremlin 控制台连接 gremlin 服务器时

run gremlin> graph=ConfiguredGraphFactory.open('test');
mgmt=graph.openManagement();mgmt.getVertexLabels()

将return:

==>person
==>animal

但是在java语言中使用相同的gremlin语句查询顶点标签时 它 return:

{result{object=v[525] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex},
result{object=v[2061] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}}

我想获取java中的标签名称,怎么办

getVertexLabels() 方法 returns 一个 VertexLabel 对象。该对象实现了 TinkerPop 的 Vertex 接口。当您在 Java 中执行该代码时(大概是通过 JanusGraph 服务器中的远程脚本 - 即 Gremlin 服务器), VertexLabel 被强制转换为 DetachedVertex - 这就是 Gremlin 服务器对待所有 Vertex 实例。我想如果你想要实际的 "label" 你只需发出你的脚本来获取标签本身:

mgmt.getVertexLabels().collect{it.name()}

这会将顶点标签强制转换为字符串,然后你就会得到你想要的。