Javascript ArangoDB graph maxDepth-迭代次数过多

Javascript ArangoDB graph maxDepth-迭代次数过多,javascript,graph,arangodb,Javascript,Graph,Arangodb,我正试图用ArangoDB构建一个大型的ish社交网络图。我这里有数据-大约35k个顶点,大约150k条边 我意识到这是一个非常多的数据,所以我希望一次只画一个子集-可能是从起点开始2或3度的间隔 但是我得到了一个1909:如果maxDepth大于1,那么迭代次数太多了,即使我将maxIterations设置得很低(比如,1) 例如,这个查询给了我一个太多的迭代错误 GRAPH_遍历('Friends','people/1342','outbound',{maxDepth:2,maxIterat

我正试图用ArangoDB构建一个大型的ish社交网络图。我这里有数据-大约35k个顶点,大约150k条边

我意识到这是一个非常多的数据,所以我希望一次只画一个子集-可能是从起点开始2或3度的间隔

但是我得到了一个
1909:如果maxDepth大于1,那么迭代次数太多了,即使我将maxIterations设置得很低(比如,1)

例如,这个查询给了我一个太多的迭代错误

GRAPH_遍历('Friends','people/1342','outbound',{maxDepth:2,maxIterations:10})

如果省略maxIterations,则会得到相同的错误


图形在web界面中绘制成功,因此我认为问题不在于数据本身。我的图表中的数据是否比ArangoDB所能处理的还要多?还是我做错了什么?

maxIterations是一个阈值,它将控制太多的计算周期。因此,图形越大,游戏中的边/节点越多,您需要的计算周期就越多(maxIterations参数应该越高)


因此,尝试平滑地增加maxDeth==2的maxIterations,以此类推。但不是太平稳,例如try+1:=try*10:-)

参数控制遍历自动中止的迭代次数。当在循环图上运行遍历时,这种自动终止是为了保护您免受无休止的遍历


maxIterations
不控制遍历深度,但在经过多少个顶点之后,遍历将停止并抛出错误

下面是一个如何计算最大值的示例: 遍历将从指定的起始顶点开始。这是第一次迭代。对于起始顶点,将确定所有传出(或传入)连接。假设从开始顶点有五个连接,因此下一轮遍历将考虑它们。因此,对于
maxIterations
,需要至少为6的值(1表示开始顶点,5表示下一轮)。如果现在5个顶点中的每个顶点都有5个连接,则至少还需要25次迭代,因此需要
maxIterations
值31。对于下一个级别,每个级别有5个连接,您还需要125个等

因此,对于每个级别,您不能简单地为
maxIterations
添加一个常量值。我们看到的序列(1,6,31156)显然是非线性的。需要多少次迭代显然取决于底层数据和顶点的连接方式


如果您想要实现的只是将遍历深度限制在某个级别,那么可以使用
minDepth
maxDepth
参数,并将
maxIterations
设置为一个非常高的值(这可能永远不会达到,因为遍历以
maxDepth
为边界)。控制遍历产生的数据量的进一步选项有
方向
任何
将产生大多数结果,并且更容易导致循环,尽可能使用
入站
出站
)和
唯一性
(控制访问给定顶点或连接边的频率).

我从100k开始,然后是50k,然后是10k,然后是1000100,1-我应该把它提高几个数量级吗?你可能需要更多,而不是更少的maxiterations。