我需要获取到给定顶点距离最短的所有相关顶点,这些距离不超过某个最大距离值。
我想出了以下最大距离为 4 的查询,但是否可以进一步优化此查询?也许在 Neptune 中有一些用于图距离搜索的算法?
g.V('XXX').repeat(both().dedup()).emit().times(4)
.project('id', 'count').by(id()).by(path().count(local))
我需要获取到给定顶点距离最短的所有相关顶点,这些距离不超过某个最大距离值。
我想出了以下最大距离为 4 的查询,但是否可以进一步优化此查询?也许在 Neptune 中有一些用于图距离搜索的算法?
g.V('XXX').repeat(both().dedup()).emit().times(4)
.project('id', 'count').by(id()).by(path().count(local))
我看到了两个会影响查询性能的问题。
这就是我要做的:
g.V('XXX').as('x').
repeat(both().dedup().sack(assign).by(loops())).
emit().
times(4).
where(neq('x')).
project('id', 'count').
by(id).
by(sack()) // distances start at 0; if you want the distance to
// start at 1, use sack(sum).by(constant(1)).sack()