本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。 Elasticsearch: 权威指南 » 基础入门 » 数据输入和输出 » 更新整个文档 « 检查文档是否存在 创建新文档 »
更新整个文档编辑
在 Elasticsearch 中文档是 不可改变 的,不能修改它们。
相反,如果想要更新现有的文档,需要 重建索引 或者进行替换,
我们可以使用相同的 index
API 进行实现,在 索引文档 中已经进行了讨论。
PUT /website/blog/123 { "title": "My first blog entry", "text": "I am starting to get the hang of this...", "date": "2014/01/02" }
在响应体中,我们能看到 Elasticsearch 已经增加了 _version
字段值:
{ "_index" : "website", "_type" : "blog", "_id" : "123", "_version" : 2, "created": false }
created
标志设置成 false
,是因为相同的索引、类型和 ID 的文档已经存在。
在内部,Elasticsearch 已将旧文档标记为已删除,并增加一个全新的文档。 尽管你不能再对旧版本的文档进行访问,但它并不会立即消失。当继续索引更多的数据,Elasticsearch 会在后台清理这些已删除文档。
在本章的后面部分,我们会介绍 update
API, 这个 API 可以用于 partial updates to a document 。
虽然它似乎对文档直接进行了修改,但实际上 Elasticsearch 按前述完全相同方式执行以下过程:
唯一的区别在于, update
API 仅仅通过一个客户端请求来实现这些步骤,而不需要单独的 get
和 index
请求。
Getting Started Videos
Starting Elasticsearch Introduction to Kibana Logstash Starter Guide官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/update-doc.html