2

在此处的 Map/Reduce 和 CouchDB 中排名业余。我有一个 CouchDB,其中填充了大约 600,000 行数据,这些数据表示记录的视图。我的愿望是生成一个图表,显示整个数据集的每条记录的点击量。

我已经实现了 Map/Reduce 函数来进行分组,如下所示:

function(doc) {
  emit(doc.id, doc);
}

和:

function(key, values) {
    return values.length;
}

现在因为仍然有相当数量的减少值,我们只想要图上的 100 个数据点,所以这不是很有用。另外,它需要永远运行。

我可以只检索每 X 行,但理想的做法是将这些缩减的结果传回另一个缩减函数,该函数取其值的平均值,这样我最终会得到一组很好的结果,比如 100 个结果,这对放入高级概览图以查看命中分布。

这可能吗?(如果是这样,键是什么?)或者我只是在我的 MapReduce 代码中搞砸了一些东西,导致它的性能非常差,从而允许我在我的应用程序代码中执行此操作?仅返回 33,500 个结果。

谢谢,马特

4

1 回答 1

1

回答我自己的问题:

  1. 根据这篇文章,CouchDB 不支持将 Map/Reduce 输出作为输入传递给另一个 Map/Reduce 函数,尽管文章指出其他项目(如迪斯科)确实支持这一点。

  2. 自定义服务器端处理可以通过 CouchDB 列表的方式执行 - 例如,按值排序

于 2012-04-29T03:02:54.197 回答