本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。 Elasticsearch: 权威指南 » 基础入门 » 分布式文档存储 » 局部更新文档 « 取回一个文档 多文档模式 »
局部更新文档编辑
如 图 11 “局部更新文档” 所示,update
API 结合了先前说明的读取和写入模式
。
图 11. 局部更新文档
以下是部分更新一个文档的步骤:
-
客户端向
Node 1
发送更新请求。 -
它将请求转发到主分片所在的
Node 3
。 -
Node 3
从主分片检索文档,修改_source
字段中的 JSON ,并且尝试重新索引主分片的文档。 如果文档已经被另一个进程修改,它会重试步骤 3 ,超过retry_on_conflict
次后放弃。 -
如果
Node 3
成功地更新文档,它将新版本的文档并行转发到Node 1
和Node 2
上的副本分片,重新建立索引。 一旦所有副本分片都返回成功,Node 3
向协调节点也返回成功,协调节点向客户端返回成功。
update
API 还接受在 新建、索引和删除文档 章节中介绍的 routing
、 replication
、 consistency
和 timeout
参数。
基于文档的复制
当主分片把更改转发到副本分片时, 它不会转发更新请求。 相反,它转发完整文档的新版本。请记住,这些更改将会异步转发到副本分片,并且不能保证它们以发送它们相同的顺序到达。 如果Elasticsearch仅转发更改请求,则可能以错误的顺序应用更改,导致得到损坏的文档。
« 取回一个文档 多文档模式 »Getting Started Videos
- Starting Elasticsearch
- Introduction to Kibana
- Logstash Starter Guide
官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_partial_updates_to_a_document.html