找出遍历的Vertex和边缘

时间:2018-01-26 03:55:17

标签: gremlin janusgraph

我有以下图表

enter image description here

如果我写了一个查询gV(' A')。Out(),我如何得到遍历的边的值和在几个中遇到的顶点?

1 个答案:

答案 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]]