redis - 使用 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"
但我没有成功。这个功能可用吗?
解决方案
这是一种选择(有点贵)
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
但它需要额外的客户端处理。
推荐阅读
- php - 如何组织一个不寻常的连接 OneToOne Doctrine2
- xml - 过滤所有月份特定日期的事件日期 xsd
- kentico - 如何使用 Kentico Rest API 将联系人添加到联系人组?
- python - 如何将批量数据发布到弹性搜索?
- mysql - Laravel 5.7 中修改的用户注册停止工作(字段'last_name'没有默认值,但数据完整)
- azure-devops - 不遵守 Azure Pipelines 任务超时
- python - 是否可以从虚拟环境中运行 jupyter
- python - 如何从具有浮点值的二维 numpy 数组中删除 NaN,结果类型应该是数组?
- java - 有没有办法让B
, A 的子类 , 被转换为 A ? - ubuntu-14.04 - 如何将 ubuntu 服务器 14.04 LTS 升级到 18.04 LTS?