Neo4J 密码查询以获取通过具有相同通用属性的路径连接的节点

Neo4J cypher query to get nodes connected by paths with the same generic attribute

我正在尝试创建一个密码查询,该查询 returns 通过给定范围的跃点(即 1..5)连接的节点,其中这些跃点之间的所有关系共享相同的属性值, 不指定此属性。

所以我想做类似的事情

MATCH (a {type: 'cin1'})-[rels:Next*1.. {value: 1}]->(b {type: 'cancer'}) 
RETURN (a), (b)

但是没有指定边上的值应该是1,只需要在跳跃过程中所有边之间都相等即可。

我会为你的路径添加一个上限。或者使用(全部)shortestPath(s)

还要确保通过索引标签 + 属性 组合查找 ab

然后您可以在构成路径的关系集合上使用谓词。

MATCH (a:Label {type: 'cin1'})
MATCH (b:Label {type: 'cancer'})
MATCH shortestPath((a)-[rels:Next*1..20]->(b))
WHERE ALL(r in tail(rels) WHERE (head(rels)).value = r.value)
RETURN (a), (b)