【发布时间】:2013-02-27 20:36:04
【问题描述】:
我经常会遇到想要减少 MapReduce 的情况。例如,如果我有两个对象,我想从一个对象获取版本,从另一个对象获取计数。
public class Visit {
public string Id { get; set; }
public string Version { get; set; }
}
public class Search {
public string Id { get; set; }
public string VisitId { get; set; }
}
public class MapReduceResult {
public string VisitId { get; set; }
public string Version { get; set; }
public int Count { get; set; }
}
在减少时,我必须按 ID 和版本将访问和搜索分组在一起,以便能够获得每个版本的搜索次数。不幸的是,每次访问都会有一行,而我们正在谈论数百万次。因此,将数据拉到客户端不是首选方式,而且 1024 对象限制也有点搞砸了。
如果我能以某种方式再次减少 MapReduce,这个问题就会得到解决。然后我第二次按版本分组,完全忽略 VisitId,并总结所有计数。有没有办法做到这一点?
甚至 Sum 都不能用于可查询,所以感觉就像我已经用完了服务器端选项。
你们有什么想法吗,我有什么意义吗?
【问题讨论】:
标签: mapreduce ravendb aggregate