1

我是 Couchbase 的新手。我正在研究reduce函数并在所有情况下都意识到,rereduce参数总是错误的。我已阅读有关rereduce. 他们说,在前一个 reduce 阶段之后调用 reduce 函数时,这rereduce是真的。这让我很困惑。

我的问题是如何得到rereduce= true ???

4

1 回答 1

1

如果您的集群中有多个服务器,则 Rereduce 将变为 true。我将解释 _count 函数示例。

当您拥有一台服务器时,两种操作:map 和 reduce 都在一台服务器上处理。即如果你有这样的数组:在 map: [1:null, 2:null, ... , 5:null] 之后,你需要在 reduce 中计算它们,它会一步返回 5。

但是,如果您有多个服务器,则 map 和 reduce 函数将在每台服务器上执行。因此,您从地图中的第一个服务器获得 ie [1:null,3:null],从另一个服务器获得 [2:null,4:null,5:null]。然后reduce函数也将在两台服务器上调用,它将从第一台服务器返回[2],从另一台服务器返回[3]。该值将在一台服务器上再次传递以减少,因此在重新减少时,您将在值参数中获得一个数组 [[2],[3]],在这里您需要添加该值以获得正确的计数。

于 2013-08-06T08:45:05.057 回答