Gremlin 想要获得标签名但返回id,如果需要更改小精灵句子?

Gremlin 想要获得标签名但返回id,如果需要更改小精灵句子?,gremlin,janusgraph,Gremlin,Janusgraph,使用gremlin控制台连接gremlin服务器时 run gremlin> graph=ConfiguredGraphFactory.open('test'); mgmt=graph.openManagement();mgmt.getVertexLabels() 将返回: ==>person ==>animal 但是当使用java语言中相同的gremlin语句查询顶点标签时 它返回: {result{object=v[525] class=org.apache.tinke

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

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

==>person
==>animal
但是当使用java语言中相同的gremlin语句查询顶点标签时 它返回:

{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获取标签名,如何操作方法返回一个
VertexLabel
对象。该对象实现TinkerPop的
顶点
接口。当您在Java中执行该代码时(可能是通过JanusGraph服务器中的远程脚本,即Gremlin服务器),将
VertexLabel
强制为
DetachedVertex
——这正是Gremlin服务器处理所有
Vertex
实例的方式。我猜,如果您想要实际的“标签”,您只需发布脚本来获取标签本身:

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

这将强制顶点标签为字符串,然后您将得到您想要的。

我尝试了您提供的gremlin语句,但无法获得“person”或“animal”的顶点标签,只需获得标签“vertex”,它不是我想要的嗯-可能使用
toString()
而不是
label()
(这就是控制台要做的)我的java代码是:List result=client.submit(“graph=ConfiguredGraphFactory.open('test');mgmt=graph.openManagement();mgmt.getVertexLabels()”).stream().map(r->r.toString()).collect(collector.toList());它还返回DetachedVertex@stephen malletteit!这个方法得到了实际的vertex标签!