【发布时间】:2012-01-13 22:24:30
【问题描述】:
当数据跨两个节点分片时,我无法让 map reduce 样本正常工作。我正在存储与两个本地 ravenDB 节点上记录的应用程序错误相关的文档,错误文档如下所示:
节点1上的文档示例,共有6个
errors/1/6
{
"UniqueId": "c62c7e30-8ec7-45af-88e4-da023d796727",
"ApplicationName": "MyAppName"
}
节点2上的文档示例,共有7个
errors/2/6 --Error stored on shard node 2
{
"UniqueId": "7e0b0f87-9d75-4e70-9fa0-d64a18bc88dc",
"ApplicationName": "MyAppName"
}
当我运行这个查询时:
public class ApplicationNames : AbstractIndexCreationTask<ErrorDocument, Application>
{
public ApplicationNames()
{
Map = errors => from error in errors
select new { error.ApplicationName, Count = 1 };
Reduce = results => from error in results
group error by new { error.ApplicationName, error.Count } into g
select new { g.Key.ApplicationName, Count = g.Sum(x=> x.Count) };
}
}
我得到了 2 个结果;一个计数为 6,第二个计数为 7。我期望每个分片的两个结果将合并为一个计数为 13 的结果。不确定我是否做错了什么它应该如何工作。我按照http://ravendb.net/documentation/docs-sharding的例子设置了分片策略。
【问题讨论】:
标签: ravendb