我正在使用CouchDB从我的数据库中的一些表中检索数据。问题是,我必须解析这些数据,才能知道我想将哪些数据放在lucene索引中。
所以,我想我可以用我已经写好的类来处理数据。我可以使用CouchApp指令在我的索引函数中添加这个类。
结果如下:
//Index Function
function (doc) {
var myClass = new MyClass(doc.Data);
var ret = new Document();
ret.add(myClass.getResult());
return ret;
}
//CouchApp directives:
//! vendor/couchapp/MyClass.js当我查看我的设计文档时,似乎所有的代码都被正确地添加了,但是当我执行搜索时,lucene说“没有定义MyClass”。
如果我试图手动复制/粘贴所有"MyClass“代码(因此不再使用CouchApp指令),lucene说我的文档有一个不正确的结尾。
我遗漏了什么?
编辑:我删除了所有真正的函数代码,这些代码在这个问题上没有任何意义。
发布于 2013-05-13 08:39:20
我找到了解决问题的办法:
我必须将外部代码放在索引函数中:
//Index Function
function (doc) {
var myClass = new MyClass(doc.Data);
var ret = new Document();
ret.add(myClass.getResult());
return ret;
//CouchApp directives:
//! vendor/couchapp/MyClass.js
}我不知道为什么它不存在于couchdb视图的map函数中,但是对于lucene索引函数却不是这样。
希望能帮上忙!你好,米卡埃尔
发布于 2013-05-03 12:23:47
供应商是否将您的MyClass代码内联成“索引”值?
包含MyClass代码时所得到的错误听起来就像您自己的Javascript错误。CouchDB评估字符串使用Rhino,这是一个完整的Javascript引擎。
如果包含完整的“索引”值,可能会更明显。
https://stackoverflow.com/questions/16337941
复制相似问题