我正在尝试使用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中创建Futon的设计/视图。或者,我认为可以按如下方式创建python viewserver: curl -X PUT http:// [localhost] / _config / query_servers / python'“/ path / to / couchpy”'
但是,我仍然无法执行python脚本。在Couch上运行视图会导致以下结果: '错误:访问视图无响应时发生错误'
如果有人能指出正确的方向,我将不胜感激。谢谢!
答案 0 :(得分:4)
我遇到了相同的“错误:访问视图无响应时出错”问题,结果证明这是我的python代码中的一个错误。具体来说,在javascript实现中我有类似的东西:
function (doc) {
emit(doc.somefield, doc);
}
我已将此转换为:
def map(doc):
yield doc.somefield, doc
但是,这给了我描述的“无响应”错误。
将其更改为以下内容解决了问题。
def map(doc):
yield doc['somefield'], doc
答案 1 :(得分:2)
我不知道OSX会保留CouchDB配置文件,但您始终可以通过Futon设置Python查询服务器。在侧栏上单击“配置”,然后单击页面底部的“添加部分”,并使用您计划写入local.ini的相同数据填充字段。作为奖励,您不需要重新启动CouchDB - 通过HTTP API进行的配置更改会立即应用,但请确保您指定了正确的值。