什么是Neo4j的REDUCE功能的大O.

时间:2017-02-22 19:24:05

标签: neo4j reduce shortest-path bigdata

我对Neo4j很陌生,我正在考虑将其用作解决方案。请考虑以下示例:Finding the Shortest Path through the Park

Neo4j中REDUCE功能的大O符号是什么?它是计算每种可能性并对它们进行排名还是更有效?

2 个答案:

答案 0 :(得分:2)

REDUCE函数只是遍历集合中的项目,为每个项目执行一个返回值的任意操作,保留最新值,最后返回最后一个值。

如果我们忽略“任意操作”本身的复杂性,REDUCE函数的复杂性为O(N),其中N是集合的大小。

答案 1 :(得分:1)

如果您指的是此查询

RETURN p AS shortestPath,
reduce(distance=0, r in relationships(p) :  distance+r.distance) AS totalDistance
ORDER BY totalDistance ASC
LIMIT 1;

首先定义开始和结束节点......并匹配它们之间的所有路径......

reduce

这个order by就像这样工作,它从路径的关系中提取所有距离属性并总结它们。因此,如果limit结果按距离递增,{{1}}结果为1,则只获得第一个最小距离

P.S。我认为你所指的大O实际上是零0,所以它从零开始,并加起来所有距离