密码查询需要很长时间才能执行以找到结束节点

时间:2019-06-18 04:55:51

标签: neo4j neo4j-ogm

实际上,当我在运行查询时没有得到任何结果,甚至异常或错误。然后查询继续运行并造成死锁。

我正在使用neo4j

MATCH p=(a:player{id:"500025"})-[:ADDRESS*]->(b:player)
WHERE NOT ((b)-[:ADDRESS]->()) AND (b.playerId = a.playerId)
WITH relationships(p) AS consRel, length(p) AS size, nodes(p) AS consAct
RETURN DISTINCT consAct AS activities,  consRel AS relationships

1 个答案:

答案 0 :(得分:1)

增加可变长度关系的上限,可能的路径数量飞涨,并且工作量超出数据库可能处理的范围(您可能还想检查内存配置设置,以防堆或页面缓存太低)。

您可以查看正在构建的路径数:

MATCH p=(a:player{id:"500025"})-[:ADDRESS*..10]->(b:player)
WHERE NOT ((b)-[:ADDRESS]->()) AND (b.playerId = a.playerId)
RETURN count(p)

查看随着var-length关系的上限增加,计数如何增加。随着上限的增加,路径数量很有可能推到数百万或更高。您应该选择一个合理的上限,并坚持这样做。