小智 6
Clone 和 ReIndex 在 Elasticsearch 中执行类似的操作,但有本质上的区别。
\n什么是克隆操作?
\n克隆操作会将现有索引克隆到新索引中,其中每个原始主分片都被克隆到新索引中的新主分片中。基本上,此功能是将现有索引复制到具有与原始索引相同的属性和设置的新索引。
\n以下是克隆操作期间发生的内部活动。
\n当我们需要将索引复制到另一个索引时,克隆功能非常有用。克隆将在目标索引中维护与源索引相同的分片数量、相同的映射和设置。
\n什么是重新索引操作?
\nReIndex操作复制源索引的内容并将其写入目标索引。该操作仅复制数据,不复制索引设置。在执行重新索引操作之前,我们需要使用所需的设置和映射预先创建目标索引。源和目标可以是任何预先存在的索引、索引别名或数据流。但是,源和目标必须不同。\nReIndex 适用于需要更新分片数量、更新映射、更新设置等的情况。我通常执行 reindex 来更新映射。
\n通过设置以下属性可以在后台执行 ReIndex 操作
\nwait_for_completion=false.\n
Run Code Online (Sandbox Code Playgroud)\n克隆操作的 API 请求示例:
\nPOST /my_source_index/_clone/my_target_index\n
Run Code Online (Sandbox Code Playgroud)\n重新索引操作的示例 API 请求:
\nPOST _reindex\n{\n "source": {\n "index": "source_index"\n },\n "dest": {\n "index": "target_index"\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n