Gremlin查询:到目前为止,如何获取查询中所有“内部”边?

问题描述

因此,我正在尝试可视化到目前为止在gremlin查询中的节点以及这些节点之间的边;如果可能的话,“内部”边缘。

例如,我有这个gremlin查询

g.V().hasLabel("Person").out("Expert in")

将产生一组节点。通常,如何进行gremlin查询获取此结果集中节点之间的所有边?

感谢您的帮助:)

解决方法

out()步骤是outE().inV()的简写,因此获取边缘的第一步是显式遍历边缘,以使它们成为路径历史的一部分。您可以通过多种方式从该历史中获取优势-path()步骤如何?

g.V().hasLabel("Person").outE("Expert in").inV().path()
,

我知道了!

这个gremlin查询应该可以解决问题:

g.V().hasLabel('Person') // <-- Nodes chosen so far; can be any query resulting in nodes
.dedup()
.union(outE(),inE()) 
.groupCount()
.unfold()
.where(select(values).is(gt(1)))
.select(keys)

这将合并所有传出和传入的边,然后删除那些出现不止一次的边。结果是到目前为止查询中节点之间的所有边缘:)