Gremlin - 如何在获得最短路径时过滤 属性 上的边
Gremlin - How to filter edges on property when getting shortest path
以下查询搜索从给定顶点 (377524408) 到具有 属性 test_property
边的另一个顶点的最短路径集,并在 3 次迭代后退出(即如果在 3 个遍历上没有找到顶点,我们 return 没有路径)。
s.V(377524408).repeat(both().simplePath())
.until(or(__.bothE().has('test_feature', gt(0)),
loops().is(lt(4))))
.path().dedup().toList()
但是,我想过滤上面查询遍历的边。
例如,仅遍历 属性 filter_property
< 100 的边。我将如何修改上述查询以包含此边过滤器?
而不是 both().simplePath()
你会使用 bothE().has('filter_property', lt(100)).otherV()
.
另外,请注意,loops().is(lt(4))
将始终在第一次迭代中评估 true
。您可能希望它是 loops().is(3)
.
以下查询搜索从给定顶点 (377524408) 到具有 属性 test_property
边的另一个顶点的最短路径集,并在 3 次迭代后退出(即如果在 3 个遍历上没有找到顶点,我们 return 没有路径)。
s.V(377524408).repeat(both().simplePath())
.until(or(__.bothE().has('test_feature', gt(0)),
loops().is(lt(4))))
.path().dedup().toList()
但是,我想过滤上面查询遍历的边。
例如,仅遍历 属性 filter_property
< 100 的边。我将如何修改上述查询以包含此边过滤器?
而不是 both().simplePath()
你会使用 bothE().has('filter_property', lt(100)).otherV()
.
另外,请注意,loops().is(lt(4))
将始终在第一次迭代中评估 true
。您可能希望它是 loops().is(3)
.