【发布时间】:2025-12-23 05:35:17
【问题描述】:
我需要获取到给定顶点距离最短的所有相关顶点,这些距离不超过某个最大距离值。
我想出了以下最大距离为 4 的查询,但是否可以进一步优化此查询?也许在 Neptune 中有一些用于图距离搜索的算法?
g.V('XXX').repeat(both().dedup()).emit().times(4)
.project('id', 'count').by(id()).by(path().count(local))
【问题讨论】:
-
您发布的查询是否满足您的需求?如果不能,您能否多说一下您需要实现的目标?如果您知道数据的形状,还可以查看 Neptune 在重复直到类型查询时提供的新查询提示。详情在这里:docs.aws.amazon.com/neptune/latest/userguide/…
-
我需要计算一个特定的顶点。为此,我需要这个特定顶点 P 和其他顶点之间的最短距离。而且我不需要超过指定长度的距离(此查询中为 4)。所以现在的查询就像 BFS 一样工作 - 循环数是顶点到顶点 P 的距离。
-
我修改了原来的那个,把循环号放在 sack() 中,但我不确定它是否会通过 dedup() 检查已经访问过的顶点时表现最佳。
g.V('XXX').repeat(sack(assign).by(loops()).sack(sum).by(constant(1)).both().dedup()).emit().times(4).limit(10000).project('id', 'count').by(id()).by(sack()).timeLimit(100) -
在 CYPHER 中有一个最短路径函数 - neo4j.com/docs/cypher-manual/current/execution-plans/…
标签: amazon-web-services gremlin tinkerpop tinkerpop3 amazon-neptune