答案 0 :(得分:5)
你需要告诉Gremlin不要跳过边缘。 g.V().out()
是g.V().outE().inV()
的简写。在这种情况下,您可以在明确告诉Gremlin遍历它们时与边缘的值进行交互。我将使用"现代"来演示几个例子。玩具图:
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
首先,您可能希望过滤特定的边属性,然后遍历到相邻的顶点:
gremlin> g.V().outE().has('weight',gt(0.5)).inV()
==>v[4]
==>v[5]
您在问题中提到过,您可能希望查看边缘值和遇到的顶点。一种方法是使用path()
:
gremlin> g.V().outE().has('weight',gt(0.5)).inV().path()
==>[v[1],e[8][1-knows->4],v[4]]
==>[v[4],e[10][4-created->5],v[5]]
您可能也会更明确地从边缘获取特定属性:
gremlin> g.V().outE().has('weight',gt(0.5)).inV().path().by().by('weight')
==>[v[1],1.0,v[4]]
==>[v[4],1.0,v[5]]