更新文档
除了能够索引和替换文档,我们还可以更新文档。请注意,Elasticsearch实际上并没有在引擎盖下进行就地更新。每当我们进行更新时,Elasticsearch都会删除旧文档,然后一次性对应用了更新的新文档编制索引。
此示例显示如何通过将名称字段更改为“Jane Doe”来更新以前的文档(ID为1):
POST /customer/_update/1?pretty
{
"doc": { "name": "Jane Doe" }
}
此示例显示如何通过将名称字段更改为“Jane Doe”来更新我们以前的文档(ID为1),同时为其添加年龄字段:
POST /customer/_update/1?pretty
{
"doc": { "name": "Jane Doe", "age": 20 }
}
也可以使用简单脚本执行更新。此示例使用脚本将年龄增加5:
POST /customer/_update/1?pretty
{
"script" : "ctx._source.age += 5"
}
在上面的示例中,ctx._source指的是即将更新的当前源文档。
Elasticsearch提供了在给定查询条件(如SQL UPDATE-WHERE语句)的情况下更新多个文档的功能。请参阅docs-update-by-query API