当前位置:   article > 正文

修改ES索引名称

修改ES索引名称

1 案例背景

将ES索引【my-index】修改为【my-index-v1】,方便添加索引别名

2 操作步骤

  • 首先通过PUT请求将旧索引my-index设置为可写(如果之前设置为不可写)
  1. PUT /my-index/_settings
  2. {
  3.   "settings": {
  4.     "index.blocks.write": "true"
  5.   }
  6. }
  • 通过POST请求创建一个现有索引my-index的精确副本(克隆)
POST /my-index/_clone/my-index-v1
  • 通过PUT请求将旧索引my-index设置为不可写(如果之前设置为不可写)
  1. PUT /my-index/_settings
  2. {
  3.   "settings": {
  4.     "index.blocks.write": "false"
  5.   }
  6. }
  • 使用PUT请求更新索引设置,修改副本分片数(和旧索引副本分片数保持一致)
  1. PUT /my_index-v1/_settings
  2. {
  3.   "index.number_of_replicas": 2
  4. }
  • 使用DELETE请求删除旧索引
DELETE /my_index
  • 通过POST请求给现有索引创建别名
  1. POST /_aliases
  2. {
  3.   "actions": [
  4.     {
  5.       "add": {
  6.         "index": "my_index-v1",
  7.         "alias": "my_index"
  8.       }
  9.     }
  10.   ]
  11. }

3 _reindex和_clone

Elasticsearch中,_reindex和_clone是两个用于处理索引数据的API,但它们之间有一些关键的区别。

_reindex API允许你从一个或多个索引中检索、修改(如果需要的话)并重新索引文档到另一个索引。这是一个非常灵活的操作,因为它允许你在重新索引过程中对数据进行转换或修改。
你可以通过定义source和dest参数来指定要从哪个索引复制数据,以及将数据复制到哪里。
使用_reindex,你还可以通过script字段在重新索引过程中修改文档。
由于_reindex会读取和写入数据,所以它可能会对集群的性能产生影响,特别是在处理大量数据时。

_clone API是Elasticsearch 7.6.0版本中引入的一个功能,它允许你创建一个现有索引的精确副本(克隆)。
使用_clone时,不需要重新索引整个索引的数据,因为Elasticsearch会直接在内部复制索引的段文件。
由于_clone是基于内部段文件的复制,因此它通常比_reindex更快,尤其是在处理大型索引时。
然而,_clone不提供_reindex中的灵活性,例如修改或转换文档的能力。

总结:

_reindex和_clone都可以用于在Elasticsearch中复制索引数据。

_reindex提供了更多的灵活性,允许你在重新索引过程中修改或转换文档,但它可能会更慢,特别是在处理大量数据时。

_clone则是创建现有索引的精确副本,速度更快,但不提供修改或转换文档的能力。

4 学习笔记

 4.1 删除索引别名

通过POST请求将现有索引别名删除

  1. POST /_aliases
  2. {
  3.   "actions": [
  4.     {
  5.       "remove": {
  6.         "index": "my_index-v1",
  7.         "alias": "my_index"
  8.       }
  9.     }
  10.   ]
  11. }

4.2 使用_reindex完成ES索引名称修改

  • 先创建一个新的索引, 依据原有索引的属性, 这样可以避免reindex的时候,丢失数据
  1. PUT your_new_index_name
  2. {
  3.   "mappings": {
  4.     "properties": {
  5.       "your_field_name": {
  6.         "type": "text"
  7.       }
  8.     }
  9.   }
  10. }
  • 使用 reindex API 复制数据到新建的索引上
  1. POST _reindex
  2. {
  3.   "source": {
  4.     "index": "your_old_index_name"
  5.   },
  6.   "dest": {
  7.     "index": "your_new_index_name"
  8.   }
  9. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/828022
推荐阅读
相关标签
  

闽ICP备14008679号