3
votes

I start to learn neo4j. I am using the graph

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

and I have a problem. I do not know how to get all the connections from Darjeeling to Sandakphu. All queries return invalid input or no rows.

Could anyone see how should be build correct query?

1)This is correct

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

What's wrong with this one if I want all routes

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

2) This is correct

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

With this

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

i have no rows

1
Please post some sample code which explains what you have done till now and make the question more clear.ViVi
is i t better now?;]wonap

1 Answers

3
votes

In the second case, there appears to be no path of length 1 between Sirikhola and Darjeeling, and so the query returns nothing. Try putting a reasonable upper bound for the max hops:

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

The first query should also work (I've added an upper bound instead of leaving it unconstrained):

MATCH (p:peak{name:'Sandakphu'})-[r*..5]-(t:town{name:'Darjeeling'}) 
return r

BTW you can consider using allShortestPaths