Gremlin 查询:到目前为止,如何获取查询中的所有 "internal" 条边?

Gremlin Query: How to get all "internal" edges in the query so far?

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

例如,我有这个 gremlin 查询:

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

这会产生一组节点。在一般情况下,我如何进行 gremlin 查询以获取此结果集中节点之间的所有边?

感谢您的帮助:)

out()步骤是outE().inV()的shorthand,因此获取边的第一步是显式遍历边,使它们成为路径历史的一部分。您可以通过多种方式从该历史记录中获取优势 - 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)

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