Neo4j查询耗时太长

时间:2015-05-01 05:38:11

标签: neo4j

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

MATCH(sn:Snapshot) - (z:要求{type:' super'}) - (m:要求{type:' sub'})MATCH(m ) - [R 1] - (C:代码) - [RV1] - (SN) MATCH(m) - [r2] - (t:测试) - [rv2] - (sn) RETURN DISTINCT z AS super,COLLECT(DISTINCT m)AS sub,COLLECT(DISTINCT [c,r1,rv1])AS代码,COLLECT(DISTINCT [t,r2,rv2])AS测试

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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