Neo4j 密码查询最短路径
我以这种方式构建了一个图表:节点表示:公交车站,关系表示相互连接公交车站的公交线路 关系类型对应于从一个节点到另一个节点所需的时间 当我通过cypher查询图形以获得两个可能没有链接的图形之间的最短路径时,结果是使用的关系数最小的一个Neo4j 密码查询最短路径,neo4j,cypher,Neo4j,Cypher,我以这种方式构建了一个图表:节点表示:公交车站,关系表示相互连接公交车站的公交线路 关系类型对应于从一个节点到另一个节点所需的时间 当我通过cypher查询图形以获得两个可能没有链接的图形之间的最短路径时,结果是使用的关系数最小的一个 为了使最短路径对应于两个节点之间使用的所有关系类型(对应于时间)的相加最小的路径,我想对此进行更改 首先,你做错了。不要每次都使用唯一的关系类型。使用一种关系类型,然后为所有关系设置属性时间 其次,要计算加法,您可以使用以下cypher公式: START from
为了使最短路径对应于两个节点之间使用的所有关系类型(对应于时间)的相加最小的路径,我想对此进行更改 首先,你做错了。不要每次都使用唯一的关系类型。使用一种关系类型,然后为所有关系设置属性时间 其次,要计算加法,您可以使用以下cypher公式:
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;
不,关系类型是一个整数,如2或3,值以分钟为单位。您必须更改它。只需拥有1个关系类型,并将这些分钟数放入关系属性。关系类型始终只是一个名称,不能为int,也不能对其值进行计算。目前无法在cypher中从字符串转换为int,因此很难将类型作为数字进行计算。。。就像乌尔卡斯说的那样。这不在可能添加的范围之外,但是…好的,现在类型对应于运输自行车、步行、公共汽车或地铁的类型。如果我想要一个返回相同内容但不考虑类型的查询,我会将[:Line*]替换为[*]对吗?