2016-03-01 85 views
0

性能我必须找到两个节点之间的所有路径。每条路径的长度必须在1到5之间(例如2和3)。的Neo4j - 对路径查询

所以我用这个查询:

profile match p = (a:Station {name : 'X'}) - [r*2..3] -> (b:Station {name : 'Y'}) return distinct p 

我有一个指标:站(名称)

但是当我资料这个查询我有这样的结果:

my query's profile 所以问题是neo4j将这个节点B的每个可能的关系都用到了这个节点上,然后使用这个名称进行过滤。这是仅仅采取涉及这两个特定节点的关系的一种方式吗?

+0

你有不同的类型,这些节点之间的关系的?你在关系上使用标签吗?你是否在名称属性上设置了索引? http://neo4j.com/docs/stable/query-schema-index.html – Supamiu

+0

至于说,我有一个指数:站(名称) 在我的图形中的每个节点都站 是的,我有3个不同类型的关系。 –

+0

哦,没有看到这个,我的坏,那另外两个问题呢? :) – Supamiu

回答

1

也许你可能想使用allShortestPaths为,如:

PROFILE MATCH p=allShortestPaths((n:Person {name:'Ian Robinson'})-[r*1..5]–(b:Person {name:'Michal Bachman'})) 
RETURN p 

enter image description here

+0

但实际上是什么最短路径,每个路径之间的区别?我很想错过一些路径 –