neo4j找到节点之间的所有路径。艰苦跋涉登山路线

时间:2016-05-22 13:27:58

标签: neo4j cypher

我开始学习neo4j。我正在使用图表

http://neo4j.com/graphgist/b1f6439d-2904-4fcf-8017-8c83d57ef20b#listing_category=sports-and-recreation

我有一个问题。我不知道如何获得从DarjeelingSandakphu的所有连接。所有查询都返回无效输入或没有行。

有谁能看到应该如何构建正确的查询?

1)这是正确的

MATCH (p:peak{name:'Sandakphu'})-[r:twowheeler*]-(t:town{name:'Rimbik'}) return distinct(r)

如果我想要所有路线

,这个有什么问题
MATCH (p:peak{name:'Sandakphu'})-[r:*]-(t:town{name:'Darjeeling'}) return distinct(r)

2) 这是正确的

MATCH (a:village { name: 'Sirikhola' }),(b:village{ name: 'Gurdum' }) MATCH (a)-[r]->(b) RETURN r

有了这个

MATCH (a:village { name: 'Sirikhola' }),(b:town{ name: 'Darjeeling' }) MATCH (a)-[r]->(b) RETURN r

我没有行

1 个答案:

答案 0 :(得分:3)

在第二种情况下,Sirikhola和Darjeeling之间似乎没有长度为1的路径,因此查询没有返回任何内容。尝试为最大跳跃设置一个合理的上限:

MATCH (a:village{name:'Sirikhola'})-[r*..5]-(t:town{name:'Darjeeling'}) 
return r

第一个查询也应该有用(我添加了一个上限而不是让它不受约束):

MATCH (p:peak{name:'Sandakphu'})-[r*..5]-(t:town{name:'Darjeeling'}) 
return r
你可以考虑使用allShortestPaths