繁体   English   中英

如何在neo4j的有向图中找到节点之间的最短路径?

[英]How to find shortest path between nodes on a directed graph in neo4j?

只要连接了2个节点,使用图算法扩展和neo4j中内置的最短路径搜索就不会查看关系的方向。 有没有办法查询图数据库以包括连接节点的关系的方向性,还是您必须在不利用neo4j及其图算法库功能的情况下从头开始编写dijikstra的代码?

我目前正在使用以这种方式构造的查询:

MATCH (start:Db_Nodes{uid:"xxx"}),(end:Db_Nodes{uid:"yyy"}) CALL algo.shortestPath.stream(start, end, "weight") YIELD nodeId, cost MATCH (node) WHERE id(node) = nodeId RETURN node

APOC程序apoc.algo.dijkstra应该为您工作。

举例来说,如果你想与只传出关系的最短路径加权startend (不管关系型):

MATCH (start:Db_Nodes{uid:"xxx"}), (end:Db_Nodes{uid:"yyy"})
CALL apoc.algo.dijkstra(start, end, '>', 'weight') YIELD path, weight AS totalWeight
RETURN path, totalWeight;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM