Cypher查询最短路径

Gui*_*och 0 neo4j cypher

我用这种方式构建了一个graphe:节点代表:busStops,并且关系代表连接公交车站的公交线路.

关系类型对应于从另一个节点开始所需的时间.

当我查询图形时(感谢cypher)得到两个可能没有链接的最短路径,结果是使用的关系数最小的那个.

我想改变它,以便最短路径对应于两个节点之间使用的所有关系类型的添加(对应于时间)最小的路径?

ulk*_*kas 8

首先,你做错了.不要每次都使用唯一的关系类型.使用一种关系类型,然后将属性"时间"放在所有关系上.

第二,要计算加法,你可以使用这个密码公式:

START from=node({busStopId1}), to=node({busStopId2})
MATCH p=from-[:LINE*]-to  //asterix * means any distance
RETURN p,reduce(total = 0, r in relationships(p): total + r.time) as tt
ORDER by tt asc;
Run Code Online (Sandbox Code Playgroud)