通过Cypher在Neo4j中找到两个节点之间的路径很慢

时间:2019-04-03 02:49:26

标签: neo4j cypher

我打算找到两个节点之间的路径:

MATCH (x:Column {name:'colA', schema:'a.b'})-[cd:CD*1..]->(y:Column {name:'colB', schema:'c.d'})
RETURN x,y;`

,说明如下:

image

执行上述密码后,看起来好像永远卡住了,没有返回任何东西。我认为罪魁祸首是VarLengthExpand阶段,Neo4j版本是enterprise-3.4.0,有什么建议吗?谢谢。

2 个答案:

答案 0 :(得分:1)

首先,升级。您正在使用.0发行版,这些发行版通常是错误最严重的发行版(除了alpha之外)。至少,请获取您感兴趣的次要版本的最新修补程序版本(因此,如果您要使用3.4.x,则应从3.4.x版本获得最新的修补程序)。

第二,由于可以通过索引查找这两个节点,而且似乎您只是在寻找一条路径,而不是所有可能的路径,因此您可能想在之后使用shortestPath()在两个节点上都匹配。试试看。

答案 1 :(得分:0)

MATCH (x:Column {name:'colA', schema:'a.b'}), (y:Column {name:'colB', schema:'c.d'})
MATCH path = (x)-[:CD]->(y)
RETURN path