首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CouchDB-Lucene索引函数不适用于外部代码

CouchDB-Lucene索引函数不适用于外部代码
EN

Stack Overflow用户
提问于 2013-05-02 12:21:54
回答 2查看 247关注 0票数 1

我正在使用CouchDB从我的数据库中的一些表中检索数据。问题是,我必须解析这些数据,才能知道我想将哪些数据放在lucene索引中。

所以,我想我可以用我已经写好的类来处理数据。我可以使用CouchApp指令在我的索引函数中添加这个类。

结果如下:

代码语言: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

当我查看我的设计文档时,似乎所有的代码都被正确地添加了,但是当我执行搜索时,lucene说“没有定义MyClass”。

如果我试图手动复制/粘贴所有"MyClass“代码(因此不再使用CouchApp指令),lucene说我的文档有一个不正确的结尾。

我遗漏了什么?

编辑:我删除了所有真正的函数代码,这些代码在这个问题上没有任何意义。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-13 08:39:20

我找到了解决问题的办法:

我必须将外部代码放在索引函数中:

代码语言: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索引函数却不是这样。

希望能帮上忙!你好,米卡埃尔

票数 0
EN

Stack Overflow用户

发布于 2013-05-03 12:23:47

供应商是否将您的MyClass代码内联成“索引”值?

包含MyClass代码时所得到的错误听起来就像您自己的Javascript错误。CouchDB评估字符串使用Rhino,这是一个完整的Javascript引擎。

如果包含完整的“索引”值,可能会更明显。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16337941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档