更新文档

除了能够索引和替换文档之外, 我们还可以修改文档. 注意, 虽然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

results matching ""

    No results matching ""