我已经看到它在几个地方提到过,在第一次在couchDB中引用时生成一个视图需要一段时间,但我还没有找到任何估计应该花多长时间。更具体地说,我正在尝试测试我创建的视图,并且加载需要很长时间,我无法判断是否搞砸了视图,或者我是否太急于让视图完成生成。视图的map函数非常简单:
function(doc){
emit(doc.name, null);
}
我知道所有文档都有一个名称字段,因为我在导入它们之前做了一些验证,并且没有reduce函数。数据库中有大约11,000个文档,我基本上想按名称对它们进行排序。
昨晚我在蒲团的导航页面导航,让它工作约30分钟而没有看到任何结果。看起来很奇怪它应该花费很长时间,因为当上述函数用于临时视图时,结果会相对快速地显示出来。是否需要很长时间才能在CouchDB中生成视图?如果没有,会导致这样的情况?
答案 0 :(得分:2)
事实证明map函数没有问题,但罪魁祸首实际上是reduce函数。我使用couchapp创建了视图,默认的reduce函数如下:
function(key, values, rereduce){
}
请注意,它实际上并没有返回任何内容。没有返回值,CouchDB显然一遍又一遍地运行map / reduce循环,并且从未实际停止过。从视图中删除reduce函数可以解决问题。
回答原始问题,生成视图并不需要很长时间。在我的电脑上花了大约20秒。