Neo4j 返回具有特定关系类型的路径的密码查询

Neo4j 返回具有特定关系类型的路径的密码查询,neo4j,path,cypher,graph-databases,Neo4j,Path,Cypher,Graph Databases,我已经建立了一个Neo4j图形数据库 我有以下节点和关系类型: 我的问题是如何从仅具有关系类型“BUS”的站点获取两个节点之间的路径 谢谢。您可以使用以下简单的密码查询: MATCH p = (:Station {id:1})-[:BUS*]->(:Station {id:31}) RETURN p 此查询将匹配(:Station{id:1})和(:Station{id:31})之间的路径(p),只在:BUS类型的关系之后匹配任何长度的路径(*) 您还可以指定查询将遵循的跃点数,将其放

我已经建立了一个Neo4j图形数据库

我有以下节点和关系类型:

我的问题是如何从仅具有关系类型“BUS”的站点获取两个节点之间的路径


谢谢。

您可以使用以下简单的密码查询:

MATCH p = (:Station {id:1})-[:BUS*]->(:Station {id:31})
RETURN p
此查询将
匹配
(:Station{id:1})
(:Station{id:31})
之间的路径(
p
,只在
:BUS
类型的关系之后匹配任何长度的路径(
*

您还可以指定查询将遵循的跃点数,将其放在
*
之后(例如:[:BUS*1..3]将遵循至少1和最多3个跃点数)。看一看报纸

编辑:

来自Hans的评论:

我对最短路径感兴趣

您可以使用函数。这样:

MATCH (a:Station {id:1}), (b:Station {id:31}), p = shortestPath((a)-[*]-(b))
WHERE ALL (r IN relationships(p) WHERE type(r) = 'BUS')
RETURN p
从文档中:

应用于最短路径的WHERE子句中使用的谓词 模式在决定最短匹配路径之前进行评估 是


上面的查询将返回
a
b
之间的最短路径,仅评估
:BUS
关系。

这不适用于加载和加载。。(比如20分钟)no不会返回resulthm。。。你有大图表吗?如果您指定一个跃点间隔(如
[:BUS*1..3]
)?也就是说:这不是一个与图形大小相关的问题(加载、加载和加载…)?如果我指定[:BUS*1..3],我会得到(没有更改,没有记录)。。但是有一条路径..您需要使用该关系的站点之间的所有路径,还是只对有限数量的路径感兴趣?
MATCH (a:Station {id:1}), (b:Station {id:31}), p = shortestPath((a)-[*]-(b))
WHERE ALL (r IN relationships(p) WHERE type(r) = 'BUS')
RETURN p