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

问题描述 投票:0回答:2

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

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

解释说明如下:

在执行上面的密码之后,它看起来像是永远停留而没有返回任何东西。我认为罪魁祸首是VarLengthExpand阶段,Neo4j版本是enterprise-3.4.0,有什么建议吗?谢谢。

neo4j cypher
2个回答
1
投票

首先,升级。你正在使用.0版本,这些通常是最多种类的版本(除了alphas)。至少,获取您感兴趣的次要版本的最新补丁版本(所以在您的情况下,如果您想要3.4.x,请获取3.4.x行的最新补丁)。

其次,因为这两个节点都可以通过索引查找,并且因为看起来你只是在寻找单个路径,而不是所有可能的路径,所以你可能希望在匹配两个节点后使用shortestPath()。试一试。


0
投票
MATCH (x:Column {name:'colA', schema:'a.b'}), (y:Column {name:'colB', schema:'c.d'})
MATCH path = (x)-[:CD]->(y)
RETURN path
© www.soinside.com 2019 - 2024. All rights reserved.