Cypher查询以匹配图形的特定路径

时间:2014-09-02 10:27:30

标签: neo4j cypher

我的图表如下。紫色节点(11376& 11394)是我的根节点,即我的图形从那里开始。

现在我想编写一个密码查询,这样我就可以获得节点11376的完整路径,即从起始节点到结束节点(紫色到黄色)。此外,当我说节点11376我不应该得到其他节点11394.我怎么能这样做。

我尝试了以下查询,但未获得所需的输出:

 match (hh{id:'11376'})-[*0..2]-(n) return n;

它也给了其他节点,即11394

以下是neo4j grapg:

My graph

因此,如果我为节点11376编写密码匹配查询,我应该得到完整的以下路径,如下所示。 enter image description here

我该怎么做?

由于

2 个答案:

答案 0 :(得分:1)

通过使用黄色节点的标签类型,将查询写为:

match path = (hh{id:'11376'})-[*0..3]-(n:YELLOW_NODE_LABEL_TYPE_HERE)
return path;

这将返回从(节点{id:'11376'})遍历3跳或更少的所有路径到具有您已分配给黄色节点的标签类型的任何节点。通过第二个紫色节点的路径将不会包含在您的结果中,因为通过两个紫色节点到达另一个黄色节点需要大于三个跃点。

答案 1 :(得分:0)

嗯,您知道最少有3个跃点,因此您可以在查询中指定它:

MATCH p=(hh {id:11376})-[r*3]-(n)) RETURN p

顺便说一句,没有黄色节点的标签,你不能限制路径必须以黄色节点结束,所以使用上面的查询你可能有一些额外的路径