找出遍历了哪些顶点和边
Finding out which Vertex and edges were traversed
我有以下图表
如果我写一个查询g.V('A').Out(),我怎样才能得到被遍历的边的值和遍历中遇到的顶点?
您需要告诉 Gremlin 不要跳过边缘。对于 g.V().outE().inV()
,g.V().out()
是 shorthand。在这种情况下,您可以与边的值进行交互,因为您已明确告诉 Gremlin 遍历它们。我将使用 "modern" 玩具图通过几个示例进行演示:
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]]
我有以下图表
如果我写一个查询g.V('A').Out(),我怎样才能得到被遍历的边的值和遍历中遇到的顶点?
您需要告诉 Gremlin 不要跳过边缘。对于 g.V().outE().inV()
,g.V().out()
是 shorthand。在这种情况下,您可以与边的值进行交互,因为您已明确告诉 Gremlin 遍历它们。我将使用 "modern" 玩具图通过几个示例进行演示:
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]]