原文地址: https://www.elastic.co/guide/cn/elasticsearch/guide/current/_partial_updates_to_a_document.html, 版权归 www.elastic.co 所有
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/_partial_updates_to_a_document.html
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/_partial_updates_to_a_document.html
请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
局部更新文档edit
如 Figure 11, “局部更新文档” 所示,update
API 结合了先前说明的读取和写入模式。
Figure 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
参数。