Cloudant通过curl添加lucene索引

时间:2017-04-28 13:48:12

标签: curl lucene cloudant

因此,创建索引函数并对其进行测试后,应将其集成到数据库初始化步骤中。 我目前有以下内容:

indexRequest.json

{
"indexes": {
    "mySearch": {
      "index": "function (doc) {
        index('default', doc.name);
        if (doc.description) {
          index('default', doc.description);
        }
      }"
    }
  }
}

现在我尝试通过以下方式将此文件发送到cloudant:

curl -X PUT https://$username:$password@$myurl.cloudant.com/myDatabase/_design/myTest  -H 'Content-Type: application/json' -d @indexRequest.json

哪个失败

{"error":"conflict","reason":"Document update conflict."}

myTest已包含索引函数,名称不同。 我在这做错了什么?

1 个答案:

答案 0 :(得分:1)

在Cloudant中更新或删除文档时,必须为新文档正文提供以前版本的_rev令牌。程序是

1)阅读现有文件

curl -X PUT https://$username:$password@$myurl.cloudant.com/myDatabase/_design/myTest

这将为您提供现有的身体。根据您的规格修改主体。然后

2)写回文件

curl -X PUT https://$username:$password@$myurl.cloudant.com/myDatabase/_design/myTest  -H 'Content-Type: application/json' -d @indexRequest.json

原始的_id和_rev在json文件中。

然后你应该回来确认:

{
    "ok":true,
    "id":"_design/myTest",
    "rev":"2-9176459034"
}

这里是Cloudant Docs on updating documents以及Design Document management上更详细的说明