Elasticsearch7.8.0版本进阶——数据更新流程

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch7.8.0版本进阶——数据更新流程相关的知识,希望对你有一定的参考价值。

目录

一、数据更新流程概述

  • 部分更新一个文档需要结合数据读取和写入流程。

二、数据更新流程步骤

2.1、数据更新流程图解

2.2、部分更新一个文档的步骤

  1. 客户端向 Node 1(主节点) 发送更新请求。
  2. 将请求转发到主分片所在的 Node 3(副节点)。
  3. Node 3 (副节点)从主分片检索文档,修改 _source 字段中的 JSON ,并且尝试重新索引主分片的文档。 如果文档已经被另一个进程修改,它会重试步骤 3 ,超过 retry_on_conflict 次
    后放弃。
  4. 如果 Node 3 (副节点)成功地更新文档,它将新版本的文档并行转发到 Node 1(主节点) 和 Node 2(副节点) 上的副本分片,重新建立索引。一旦所有副本分片都返回成功, Node 3(副节点) 向协调节点也返回成功,协调节点向客户端返回成功。

2.3、数据更新流程注意事项

  • 当主分片把更改转发到副本分片时, 它不会转发更新请求。相反,它转发完整文档的新版本。
  • 更改将会异步转发到副本分片,并且不能保证它们以发送它们相同的顺序到达。
  • 如果 Elasticsearch 仅转发更改请求,则可能以错误的顺序应用更改,导致得到损坏的文档。

以上是关于Elasticsearch7.8.0版本进阶——数据更新流程的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch7.8.0版本进阶——倒排索引

Elasticsearch7.8.0版本进阶——近实时搜索

Elasticsearch7.8.0版本进阶——分片控制

Elasticsearch7.8.0版本进阶——分布式集群(故障转移)

Elasticsearch7.8.0版本进阶——持久化变更

Elasticsearch7.8.0版本进阶——数据更新流程