我需要找到最短的路径,该路径应该穿过多个节点和边缘。一些细节:
有没有办法使用arangodb找到这样的路径?我已经尝试过K_SHORTEST_PATHS,但是在某些情况下它太慢了。
没有数据集,这很难测试。不幸的是,除非您自己构建一些东西,否则K_SHORTEST_PATHS
是向边缘添加“权重”的唯一内置方法。另外,两个SHORTEST_PATH
方法都没有实现PRUNE
,这是加快图形遍历的最佳方法。
我的建议是使用有向图方法(FOR v,e,p IN 1..9 INBOUND x...
),同时实现PRUNE
和FILTER
子句以减少跳数,并使用COLLECT path = p AGGREGATE weight = SUM(e.weight)
之类的方法来计算权重。