AllShortestPaths缺少关系

时间:2015-05-16 21:58:10

标签: neo4j cypher

我一直在使用所有最短路径从根节点检索一定数量关系中的所有关系。例如,以标准Matrix主题graph运行以下查询。

查询1:

MATCH p = allshortestPaths((n:Crew)-[r*0..3]-(m))
WHERE n.name = 'Neo' UNWIND relationships(p) AS rels
RETURN COLLECT(DISTINCT rels)

查询2:

MATCH (n:Crew)-[r*0..3]-(m)
WHERE n.name = 'Neo' UNWIND r AS rels
RETURN COLLECT(DISTINCT rels)

第二个示例按预期工作,但allShortestPaths示例错过了Morpheus和Trinity之间的关系。

知道为什么吗?

1 个答案:

答案 0 :(得分:4)

allShortestPaths()示例省略了MorpheusTrinity之间的关系,因为NeoTrinity之间的最短路径不包含省略的关系。

allShortestPaths()示例返回Neo与每个不同节点之间最短路径的最短路径。由于NeoTrinity之间已存在直接的一步路径,因此将忽略这两个节点之间的任何更长路径。