首页 > 解决方案 > 使用 RedisGraph 查找 2 个节点之间的最短路径

问题描述

我有带有整数 id 的简单节点。我只想找到给定 id 的节点之间的最短路径。我试过了 :

GRAPH.QUERY mygraph "MATCH p=(startnode)-[*]-(endnode) WHERE ID(startnode)=2 AND ID(endnode)=1 RETURN p"

或带有 algo.BFS 的东西,但没有给出示例

GRAPH.QUERY mygraph "CALL algo.BFS source-node YIELD redisnodes,redisedges"

但我没有成功。这个功能可用吗?

标签: redisredisgraph

解决方案


这是一种选择(有点贵)

MATCH p = (a{v:1})-[*]-(c {v:2}) WITH collect(p) AS paths, min(length(p)) AS min_len RETURN [p in paths WHERE length(p) = min_len | p][0]

另一个选项必须是,algo.BFS但它需要额外的客户端处理。


推荐阅读