Cypher:查找由 ID 标识的两个节点之间的最短路径

Tob*_*ann 2 neo4j graph-databases cypher

这个密码查询是否正确?我试图根据节点 ID 找到两个节点之间的最短路径:

MATCH (martin:RoadNode {id:16814}),(oliver:RoadNode {id:16820}),
p = shortestPath((martin)-[*..15]-(oliver))
RETURN p
Run Code Online (Sandbox Code Playgroud)

它确实执行没有错误,但它返回 0 行,尽管我希望它找到一条路径。

Tob*_*ann 6

我找到了!为了根据节点的 ID 找到节点之间的最短路径,这个密码查询可以解决问题:

MATCH (martin:RoadNode),(oliver:RoadNode),
p = shortestPath((martin)-[*..15]-(oliver)) 
WHERE id(martin) = 16814 AND id(oliver) = 16820
RETURN p
Run Code Online (Sandbox Code Playgroud)

  • 注意这里的 15 是可选的,shortestPath 的默认深度限制是 15 (2认同)