【发布时间】:2017-06-18 06:44:20
【问题描述】:
我是 ArangoDB 的新用户,我遇到了一个不知道如何解决的问题。我有一个由超过 340k 个节点和超过 430k 个循环链接组成的图,我试图找到 A 和 B 之间的路径。我确定在这两个节点之间的路径中我会遇到循环,所以我使用了该选项followCycles。作为查询,我使用了一些东西:
FOR target, unused, path IN 1..150 OUTBOUND "A" connected OPTIONS {followCycles: True, uniqueEdges: "none"}
FILTER target._id == "B"
LIMIT 1
RETURN path
IMO 这个查询应该返回我 A 和 B 之间的路径,同时考虑循环。不幸的是,由于图形的维度,该查询无法找到路径并且它“永远”运行。
无论如何,我注意到如果我使用中间节点,我能够找到路径。我做了类似的事情:
FOR target, unused, path IN 1..150 OUTBOUND "A" connected OPTIONS {followCycles: True, uniqueEdges: "none"}
FILTER target._id == "intermediate"
LIMIT 1
RETURN path
FOR target, unused, path IN 1..150 OUTBOUND "intermediate" connected OPTIONS {followCycles: True, uniqueEdges: "none"}
FILTER target._id == "B"
LIMIT 1
RETURN path
我怀疑由于循环,150 的值不够,我也尝试了15000,但结果相同。
您是否知道是否可以选择只遍历循环一次或其他任何方式来避免该问题?
谢谢
【问题讨论】: