CouchDB-Lucene索引函数不';不能使用外部代码
我正在使用CouchDB Lucene从数据库中的一些表中检索数据。问题是,我必须解析这些数据,才能知道我想把哪些数据放在我的lucene索引中 所以,我想我可以使用我已经编写的类来处理数据。我可以使用CouchApp指令在我的索引函数中添加这个类 结果如下所示:CouchDB-Lucene索引函数不';不能使用外部代码,couchdb,couchapp,couchdb-lucene,Couchdb,Couchapp,Couchdb Lucene,我正在使用CouchDB Lucene从数据库中的一些表中检索数据。问题是,我必须解析这些数据,才能知道我想把哪些数据放在我的lucene索引中 所以,我想我可以使用我已经编写的类来处理数据。我可以使用CouchApp指令在我的索引函数中添加这个类 结果如下所示: //索引函数 功能(doc){ var myClass=新的myClass(文档数据); var ret=新文档(); ret.add(myClass.getResult()); 返回ret; } //CouchApp指令: //!
//索引函数
功能(doc){
var myClass=新的myClass(文档数据);
var ret=新文档();
ret.add(myClass.getResult());
返回ret;
}
//CouchApp指令:
//! 供应商/couchapp/MyClass.js
当我查看我的设计文档时,似乎所有的代码都正确添加了,但是当我执行搜索时,lucene说“MyClass没有定义”
如果我试图手动复制/粘贴所有“MyClass”代码(因此不再使用CouchApp指令),lucene说我的文档结尾不正确
我错过了什么
编辑:我删除了我所有的真正的功能代码,这在问题上没有任何意义 是!供应商是否将MyClass代码内联到“索引”值中 直接包含MyClass代码时出现的错误听起来像是您自己的Javascript错误。CouchDB Lucene评估字符串use Rhino,它是一个完整的Javascript引擎
如果包含完整的“索引”值,可能会更加明显。我找到了解决问题的方法: 我必须将外部代码放入索引函数中:
//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索引函数却不行
希望有帮助!
您好,Mikaël您说得对,我直接包含所有codre的错误是我的。是的,我所有的“MyClass”代码都与//一起添加到索引值中!供应商指令索引如下所示:“索引”:“函数(doc){…}函数MyClass(数据){…}”