更新弹性搜索文档中的特定字段

use*_*045 2 elasticsearch

我正在尝试在 elasticsearch 中更新文档,但文档被删除了

POST /index/type/id/
{
   "id":1
   "field:"modified"
}
Run Code Online (Sandbox Code Playgroud)

更新文档中特定字段的方法是什么?该文档包含一个 id 字段,通过该字段对其进行索引。

小智 5

我建议阅读有关部分更新的弹性搜索文档。

更新请求的最简单形式接受部分文档作为 doc 参数,它只是与现有文档合并。

对象合并在一起,现有标量字段被覆盖,并添加新字段。

在您的情况下,我将使用以下方法:

POST /index/type/id/_update
{
    "doc": {
        "id": 1
        "field: "modified"
    }
}
Run Code Online (Sandbox Code Playgroud)

但请记住,这只会从文档内部修改 id 字段,不会修改文档 _id。如果要修改文档 _id,则必须删除当前文档并使用所需的 id 创建一个新文档。