Apache TinkerPop Gremlin顶点相等

Apache TinkerPop Gremlin顶点相等,gremlin,tinkerpop,amazon-neptune,Gremlin,Tinkerpop,Amazon Neptune,在遍历图形时,我希望保存起始顶点,再遍历一点,并将具有特定边的所有顶点移回保存的顶点 这是我目前的尝试,但显然不正确: g.V().hasLabel('foo') .as('rule') .repeat(out('belongs_to')).times(2) .where( in('accepts').is(neq('rule')) ) 如何检查Gremlin中的顶点相等?如何筛选出存在此类等式的所有路径?where()匹配开始和结束标签,因此您可以使用where(in('accept

在遍历图形时,我希望保存起始顶点,再遍历一点,并将具有特定边的所有顶点移回保存的顶点

这是我目前的尝试,但显然不正确:

g.V().hasLabel('foo')
  .as('rule')
.repeat(out('belongs_to')).times(2)
.where(
  in('accepts').is(neq('rule'))
)
如何检查Gremlin中的顶点相等?如何筛选出存在此类等式的所有路径?

where()
匹配开始和结束标签,因此您可以使用
where(in('accepts')。as('rule'))
。由于要排除那些与模式匹配的顶点,因此需要使用
not()
对该部分求反


谢谢你,丹尼尔!如果有许多
接受来自该顶点的
边,该怎么办。如果这些
接受
边中的任何一条回到起始顶点,我想排除涉及该顶点的任何路径。我认为这个解决方案只会修剪有这个边的路径,而不会修剪父顶点,对吗?在任何情况下,这是我最初的问题所要求的,但我希望您能提供更多的澄清!因此,如果路径上的任何顶点都有一条返回初始顶点的
接受边,是否要将其排除?在这种情况下,您只需将整个
not(…)
filter步骤移动到
repeat()
步骤中。这是非常不明显的,这解决了我一整天都在坚持的问题。谢谢
g.V().hasLabel('foo').as('rule').
  repeat(out('belongs_to')).
    times(2).
  not(where(__.in('accepts').as('rule')))