获取两个节点之间的路径并使用它来匹配两个其他类型的节点

时间:2016-12-05 10:56:23

标签: neo4j cypher

我知道有两种类型的节点说(:RefNodeType1)(:RefNodeType2)。两者在给定图中都有单个实例。然后我知道还有另外两种类型的节点(:TargetNodeType1)(:TargetNodeType2),每个节点都有多个实例。

我想知道(:TargetNodeType1)(:TargetNodeType2)的所有实例,它们之间的路径与(:RefNodeType1)(:RefNodeType2)之间的路径相同。在说“相同路径”时,我的意思是说路径上的关系和节点标签应该是相同的,并且应该以相同的顺序出现。

Pseudo cypher可能看起来像这样

MATCH path = (:RefNodeType1)-<path-description>-(RefNodeType2)   //<path-description> can be anything, may include variable length relationship e.g. [:XYZ*1..]
WITH path
MATCH (a:TargetNodeType1)-<path>-(b:TargetNodeType2)
RETURN a,b

但我不知道如何指定<path>,即如果变量path中包含的路径也存在于TargetNodeType1TargetNodeType2之间。我不知道这样的查询是否可能。但是,我怎么能这样做呢?还有什么可以更好的方法呢?

0 个答案:

没有答案