用于获取距离最短的所有相关顶点的最佳 Neptune 查询



我需要获取到给定顶点的最短距离的所有相关顶点,该顶点的距离不超过某个最大距离值。

我想出了以下最大距离为 4 的查询,但是否可以进一步优化此查询?也许海王星中有一些图形距离搜索算法?

g.V('XXX').repeat(both().dedup()).emit().times(4) .project('id', 'count').by(id()).by(path().count(local))

我看到两个会影响查询性能的问题。

  1. 它使用路径跟踪(昂贵,因此速度慢)
  2. 它重新访问初始顶点,您可能不希望它在结果中

这就是我会做的:

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()

最新更新