Graph Neo4j图形数据库-伦敦地铁规划器-未找到路径

Graph Neo4j图形数据库-伦敦地铁规划器-未找到路径,graph,path,neo4j,Graph,Path,Neo4j,我已经在Neo4j创建了一张伦敦地铁的地图。站点通过:connected_连接到关系,时间值表示站点之间的间隔时间(目前这些是我输入用于测试的随机值)。位于多条线路上的车站每条线路都有一个节点,通过关系的:PART_连接。使用此查询: MATCH (from {name:"Wood Green"}), (to {name:"Royal Oak"}), p = shortestPath((from)-[*]-(to)) WITH REDUCE(time = 0, rel in rels(p) |

我已经在Neo4j创建了一张伦敦地铁的地图。站点通过:connected_连接到关系,时间值表示站点之间的间隔时间(目前这些是我输入用于测试的随机值)。位于多条线路上的车站每条线路都有一个节点,通过关系的:PART_连接。使用此查询:

MATCH (from {name:"Wood Green"}), (to {name:"Royal Oak"}), 
p = shortestPath((from)-[*]-(to))
WITH REDUCE(time = 0, rel in rels(p) | time + rel.time) AS time, p
RETURN p, time
ORDER BY time ASC LIMIT 1
我可以得到下面的最短路径:

这条路线位于4条不同的线路上,并设法找到了没有问题的路线

如果我将查询从Royal Oak更改为Bounds Green(皮卡迪利线上Wood Green的下一站),则找不到任何结果。节点“Bounds Green”节点与Wood Green和Bounds Green之间的关系一样存在

我无法想象这是对链中节点数量的限制。但我在使用Neo4j方面没有太多经验,我有点卡住了

非常感谢您的任何见解


-如果如Michael所述,在运行
(a)-[*]-(b)
查询时,节点之间的关系限制为15个。将查询更改为使用
(a)-[*…30]-(b)
解决了这个问题

MATCH (from {name: "STATION_NAME_A" }), (to {name: "STATION_NAME_B" }), 
p = shortestPath((from)-[*..30]-(to))
WITH REDUCE(time = 0, rel in rels(p) | time + rel.time) AS time, p
RETURN p, time
ORDER BY time ASC LIMIT 1

漂亮的您能否提供更改后的查询以及您的数据库(不应该太大)。链中有15个限制,但您可以通过使用
(a)-[*…30]->(b)
精彩,谢谢Michael。我假设
[*]
会给出一个无限链。更改为
[*…30]
解决了这些问题。再次感谢。