Partial Updates to a Documentedit

The update API , as shown in Figure 11, “Partial updates to a document”, combines the read and write patterns explained previously.

Partial updates to a document
Figure 11. Partial updates to a document

Here is the sequence of steps used to perform a partial update on a document:

  1. The client sends an update request to Node 1.
  2. It forwards the request to Node 3, where the primary shard is allocated.
  3. Node 3 retrieves the document from the primary shard, changes the JSON in the _source field, and tries to reindex the document on the primary shard. If the document has already been changed by another process, it retries step 3 up to retry_on_conflict times, before giving up.
  4. If Node 3 has managed to update the document successfully, it forwards the new version of the document in parallel to the replica shards on Node 1 and Node 2 to be reindexed. Once all replica shards report success, Node 3 reports success to the coordinating node, which reports success to the client.

The update API also accepts the routing, consistency, and timeout parameters that are explained in Creating, Indexing, and Deleting a Document.