Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 密码查询最短路径_Neo4j_Cypher - Fatal编程技术网

Neo4j 密码查询最短路径

Neo4j 密码查询最短路径,neo4j,cypher,Neo4j,Cypher,我以这种方式构建了一个图表:节点表示:公交车站,关系表示相互连接公交车站的公交线路 关系类型对应于从一个节点到另一个节点所需的时间 当我通过cypher查询图形以获得两个可能没有链接的图形之间的最短路径时,结果是使用的关系数最小的一个 为了使最短路径对应于两个节点之间使用的所有关系类型(对应于时间)的相加最小的路径,我想对此进行更改 首先,你做错了。不要每次都使用唯一的关系类型。使用一种关系类型,然后为所有关系设置属性时间 其次,要计算加法,您可以使用以下cypher公式: START from

我以这种方式构建了一个图表:节点表示:公交车站,关系表示相互连接公交车站的公交线路

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

当我通过cypher查询图形以获得两个可能没有链接的图形之间的最短路径时,结果是使用的关系数最小的一个


为了使最短路径对应于两个节点之间使用的所有关系类型(对应于时间)的相加最小的路径,我想对此进行更改

首先,你做错了。不要每次都使用唯一的关系类型。使用一种关系类型,然后为所有关系设置属性时间

其次,要计算加法,您可以使用以下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*]替换为[*]对吗?