两个节点neo4j之间的所有路径 - 错误答案(来自neo4j)

时间:2014-02-19 22:31:33

标签: neo4j cypher

我希望获得两个节点之间的所有路径,其关系为“ - >”它们之间。 我问我的数据库使用查询(Cypher):

START a=node(27), b=node(0) MATCH p=b<-[*]-a RETURN p 

在Neo4j可视化中,我得到了这个:

Cypher query visualization

我想获得3道路的清单:

  • 27 - &gt; 81 - &gt; .... - &gt; 0
  • 27 - &gt; 67 - &gt; .... - &gt; 0
  • 27 - &gt; 24 - &gt; .... - &gt; 0

但结果我有6个路径(而不是3个)。 我想弄明白为什么。

2 个答案:

答案 0 :(得分:1)

这是因为查询包含从'a'开始的0长度路径。如果查看您提供的文件,最后三个结果与前三个结果相同,除了在路径开头重复Node [0]。

答案 1 :(得分:1)

您的(OwlThing)与自己有[:subClassOf]的关系。它没有在可视化中显示,但那就是

Node[0]{name:"owl:Thing"},:subClassOf[35]{},Node[0]{name:"owl:Thing"}
结果中的

表示。对于(41)-[43]->(0)结尾的每条路径,还有一个(41)-[43]->(0)-[35]->(0),表示您的结果加倍。