更新文档
除了能够索引和替换文档之外, 我们还可以修改文档. 注意, 虽然Elasticsearch没有在底层做原地更新. 但是我们的确更新了. Elasticsearch在一瞬间删除了旧的文档, 然后索引了更新后的心文档.
下面的例子展示了如何把ID为1的文档的name改为"Jane Doe":
POST /customer/_doc/1/_update?pretty
{
"doc": { "name": "Jane Doe" }
}
下面这个例子展示了如何把ID为1的文档的name改为"Jane Doe", 并且同事添加一个age字段.
POST /customer/_doc/1/_update?pretty
{
"doc": { "name": "Jane Doe", "age": 20 }
}
更新也可以用简单的脚本来执行, 下面这个例子用一个脚本把age增加5.
POST /customer/_doc/1/_update?pretty
{
"script" : "ctx._source.age += 5"
}
上面的例子中, ctx._source是被更新文档的源文档的引用.
Elasticsearch提供了更新给点查询条件的多个文档的能力(就像SQL里的where语句). 查看docs-update-by-query API