实际上,当我在运行查询时没有得到任何结果,甚至异常或错误。然后查询继续运行并造成死锁。
我正在使用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
答案 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关系的上限增加,计数如何增加。随着上限的增加,路径数量很有可能推到数百万或更高。您应该选择一个合理的上限,并坚持这样做。