gpt4 book ai didi

neo4j - Apoc Dijkstra 在计算最短路径时双向遍历

转载 作者:行者123 更新时间:2023-12-02 03:52:49 28 4
gpt4 key购买 nike

我一直在尝试使用 neo4j 及其 apoc 进程库来获取 2 个节点之间的最短路径。
例如,我创建了 2 个节点,如下所示

CREATE (:Point {title:'A'})
CREATE (:Point {title:'B'})

然后我就这样建立了他们的关系

MATCH (u1:Point {title:'A'}), (u2:Point {title: 'B'}) 
CREATE (u1)-[:distance {value:10}]->(u2)

现在我已经建立了从 A 到 B 的直接关系,反之亦然。所以当我如下调用 apoc Dijkstra 时

MATCH (start:Point {title: 'B'}), (end:Point {title: 'B'}) 
CALL apoc.algo.dijkstra(start, end, 'distance', 'value') YIELD path, weight
RETURN path, weight

我不应该得到任何结果,因为它们不是从 B 到 A 的定向路径。但我得到的结果与使用从 A 到 B 的路径运行查询时相同。

谁能告诉我为什么会这样?为什么Dijkstra不顾方向?任何帮助将不胜感激。

最佳答案

您需要添加><查询中的关系类型。

MATCH (start:Point {title: 'B'}), (end:Point {title: 'B'}) 
CALL apoc.algo.dijkstra(start, end, 'distance>', 'value') YIELD path, weight
RETURN path, weight

关于neo4j - Apoc Dijkstra 在计算最短路径时双向遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44889084/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com