【问题标题】:Partial update in ElasticSearch with JEST使用 JEST 在 ElasticSearch 中进行部分更新
【发布时间】:2017-06-01 03:20:01
【问题描述】:

我正在尝试使用 JEST 对 ElasticSearch 实施 CRUD 操作,并且我调查了一些文章,我发现执行“Update”的方法是“Index”另一个具有相同“_id”的文档,但我将用这种方式替换整个文档。

我想知道 JEST 是否能够进行“部分更新”?

编辑:

我发现 io.searchbox.core 包中有一个 Update 类可能会有所帮助,但在我尝试此操作后:

Update update = new Update.Builder(updateCameraString).index(this._IndexName).type(this._TypeName).id(id).build();
JestResult updateResult = this._JestClient.execute(update);

updateCameraString的内容是

{"Name":"test Added into Es, update again.","CreatedAt":"","ModifiedAt":"","UniqueId":"","Note":""}

似乎一切都很好,但我会在下面得到回复:

{
  "error": {
    "root_cause": [
      {
        "type": "action_request_validation_exception",
        "reason": "Validation Failed: 1: script or doc is missing;"
      }
    ],
    "type": "action_request_validation_exception",
    "reason": "Validation Failed: 1: script or doc is missing;"
  },
  "status": 400
}

任何设备都非常感谢,谢谢!

【问题讨论】:

    标签: elasticsearch elasticsearch-jest


    【解决方案1】:

    你快到了,updateCameraString 需要是脚本或部分文档,因此需要将其更改为以下内容,它将起作用:

    {"doc": { "Name":"test Added into Es, update again.","CreatedAt":"","ModifiedAt":"","UniqueId":"","Note":""}}
    

    【讨论】:

    • 你是对的!在我将原始字符串更改为您提到的形式后,它可以完美运行。我真的快到了,非常感谢你把我推远了!!
    • 太棒了,很高兴它有帮助!
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2021-12-24
    • 2018-04-28
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多