只要连接2个节点,在neo4j中使用图算法扩展和内置的最短路径搜索就不会查看关系的方向。有没有办法查询图数据库以包括连接节点的关系的方向性,还是您必须从头开始编写dijikstra的代码而无需利用neo4j及其图算法库功能?
我目前正在使用以这种方式构造的查询:
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
答案 0 :(得分:0)
APOC程序apoc.algo.dijkstra应该为您工作。
例如,如果您想使用最短的加权路径,且仅具有从start
到end
的传出关系(无论关系类型如何):
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;