2

我正在努力跟上 CouchDB 的速度。作为一个相对较新的 Python 用户,我正在尝试设置一个视图服务器,以便我可以将 python 函数传递给 couchdb.design.ViewDefinitions 函数。据我了解,ViewDefinitions 采用 javascript 代码来执行 map/reduce 函数。

这是我很难理解的——我很清楚这可能是一个基本问题。根据维基(http://wiki.apache.org/couchdb/View_server):

要将查询服务器注册到 CouchDB,请在 local.ini 中为每个服务器添加一行。基本语法是:'[query_servers] python=/usr/bin/couchpy'

如何访问 local.ini 文件?我是 10.6.8 Mac 用户。谢谢!

更新:谢谢Kxepal。看来我能够在 Python 中创建蒲团的设计/视图。或者,我认为可以按如下方式创建 python 视图服务器: curl -X PUT http://[localhost]/_config/query_servers/python '"/path/to/couchpy"'

但是,我仍然无法执行 python 脚本。在 Couch 上运行视图会导致以下结果:“错误:访问视图时发生错误无响应”

如果有人能指出正确的方向,我将不胜感激。谢谢!

4

2 回答 2

4

我遇到了同样的“错误:访问视图时发生错误无响应”问题,结果证明是我的 python 代码中的一个错误。具体来说,在 javascript 实现中,我有类似的东西:

function (doc) {    
    emit(doc.somefield, doc);
}

我已将其转换为:

def map(doc):
    yield doc.somefield, doc

但是,这给了我您描述的“无响应”错误。

将其更改为以下解决了该问题。

def map(doc):
        yield doc['somefield'], doc
于 2013-09-22T00:23:13.743 回答
2

我不知道 OSX 是否保留 CouchDB 配置文件,但您始终可以通过Futon设置 Python 查询服务器。在侧边栏上单击配置,然后单击页面底部的“添加部分”,并使用与您计划写入 local.ini 相同的数据填充字段。作为奖励,您不需要重新启动 CouchDB - 通过 HTTP API 进行的配置更改会立即应用,但请确保您指定了正确的值。

于 2013-03-17T06:41:50.940 回答