我们已经在Couchbase上做了几个月的新项目的开发,虽然我们已经做了一些看法,但我们最近刚刚介绍了我们的第一个减缩。
reduce函数对小于100行的索引进行操作,但是每当我添加一个与映射匹配的新文档时,减少数据将被完全销毁,并返回所有值的零。它会像这样停留相当长的时间,5-10分钟,有时更长,然后最终开始输出预期值。
由于指数太小,我想知道我可能做错了什么。我可以让它与陈旧的数据一起工作--但如果达到0,就不可行了。我希望有人能看看我的功能,并告诉我,如果我写这些功能的方式无法执行。
地图:
function (doc, meta) {
if(meta.type == "json") {
if(doc.object == "product") {
emit([doc.account_id, doc.test], {active: doc.active, deleted: doc.deleted} );
}
}
}减少:
function (keys, values) {
var out = {active: 0, inactive: 0, deleted: 0};
for(v in values) {
if (values[v].active == true && values[v].deleted == false) {
out.active++
}
if (values[v].active == false && values[v].deleted == false) {
out.inactive++
}
if (values[v].deleted == true) {
out.deleted++
}
}
return out;
}我们正在运行CommunityVersion2.2.0 (build-837)的最新版本。它运行在一个拥有大量硬件资源和很少使用的开发环境中。顺便提一句,除了这个小小的障碍之外,Couchbase一直都很棒。
发布于 2014-09-25 06:57:06
这可能不是问题的根本原因,但您还没有处理reduce()函数中的重还原案例--这可能导致不正确的还原结果。请参阅关于理解自定义减少和重新减少的Couchbase开发人员指南一节
我还建议暂时删除reduce()函数,以验证索引在仅使用map()函数时是否按预期操作。
https://stackoverflow.com/questions/26030220
复制相似问题