Neo4j 查询时间太长



我的查询需要 52 秒才能加载(返回 1419 行)

MATCH (sn:Snapshot)--(z:Requirement {type:'super'})--(m:Requirement {type:'sub'}) MATCH (m)-[r1]-

(c:Code)-[rv1]-(sn)匹配 (m)-[r2]-(t:测试)-[rv2]-(sn)返回不同的Z作为超级,COLLECT(DISTINCT M)作为子,COLLECT(DISTINCT [C,R1,RV1])作为代码,COLLECT(DISTINCT [t,r2,rv2]) AS test

我有大约 634228 个关系和 91176 个节点。

我在节点上有索引,在关系上有自动索引。我一直在尝试很多方法,但找不到减少时间的方法。

如果您需要更多信息,请告诉我,我是 Neo4j 的初学者。

谢谢。

Cou 可以尝试将基数放在两者之间,否则对于与 :Code 匹配的每个路径,它将执行与 :Test 的匹配。

MATCH (sn:Snapshot)--(z:Requirement {type:'super'})--(m:Requirement {type:'sub'})
WITH distinct z,m
MATCH (m)-[r1]-(c:Code)-[rv1]-(sn)
WITH m, COLLECT(DISTINCT [c,r1,rv1]) AS code
MATCH (m)-[r2]-(t:Test)-[rv2]-(sn)
RETURN z AS super, COLLECT(DISTINCT m) AS sub, code ,COLLECT(DISTINCT [t,r2,rv2]) AS test

最新更新