大数据库中Neo4j分离度查询效率

时间:2012-04-11 15:25:48

标签: graph neo4j

我试图找出找到一个节点与其他节点列表之间的分离程度的最有效方法。例如,我有一个节点1和一个节点列表(2,3,4,5,... 15,16)。我想找到介于1和2,1和3,1和4之间的最短路径的长度,依此类推。我尝试了以下cypher查询:

cypher 1.7 start s = node(1),d = node(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)match p = s - [* 1..3] -d返回d,min(长度(p))

在电影评级数据库(描述here,它有9,962个节点和1,012,657个关系)。

我有一个outofmemory异常。我试图将节点列表限制为(2,3)并得到相同的错误。

我想知道是否有办法在大型数据库中更有效地完成此类查询。非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试使用ShortestPath,请参阅http://docs.neo4j.org/chunked/snapshot/query-match.html#match-shortest-path,这可能会更有效吗?