Gremlin Tinkerpop返回一个对象Path,如何访问各个顶点

问题描述 投票:0回答:1

我可以看到有人问过几次,但我看不到适合我的答案。

我正在Java应用程序中使用它,我想返回一个包含顶点iD的顶点或仅包含String的ArrayList。我必须使用Path()步骤,因为我需要以正确的顺序返回顶点,但是我只得到了一个包含2个对象的列表,看起来像源顶点作为对象,整个Path作为对象,我可以不操纵或使用数据?

我的遍历是:

List<Object> routeList;

routeList = g.V(sourceID).shortestPath().with(ShortestPath.edges, Direction.OUT)
                .with(ShortestPath.distance, "weight").with(ShortestPath.target, hasId(targetId))
                .with(ShortestPath.includeEdges, false).path().unfold().toList();

列表的输出是:

v[L00-041]
path[v[L00-041], v[L00-042], ...etc.... v[L00-043], v[L00-031]]

我确实需要以可用格式返回路径。我敢肯定有人曾经担任过这个职位,可以为我提供帮助。谢谢。

gremlin tinkerpop tinkerpop3
1个回答
0
投票

Gremlin将向您返回一个Path对象,您可以对其进行迭代。这是Gremlin控制台的示例。

gremlin> p = g.V(1).out().limit(1).path().next()
==>v[1]
==>v[135]
gremlin> p.class
==>class org.apache.tinkerpop.gremlin.process.traversal.step.util.ImmutablePath
gremlin> p[1]
==>v[135]
gremlin> p[0]
==>v[1]       
gremlin> p.size()
==>2
gremlin> for (e in p) {println(e)}
v[1]
v[135]    

相关的JavaDoc在这里:

https://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/step/util/ImmutablePath.html

https://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/Path.html

© www.soinside.com 2019 - 2024. All rights reserved.