修改ES索引名称

1 案例背景

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

2 操作步骤

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

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请求将现有索引别名删除

POST /_aliases
{
  "actions": [
    {
      "remove": {
        "index": "my_index-v1",
        "alias": "my_index"
      }
    }
  ]
}

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

  • 先创建一个新的索引, 依据原有索引的属性, 这样可以避免reindex的时候,丢失数据
PUT your_new_index_name
{
  "mappings": {
    "properties": {
      "your_field_name": {
        "type": "text"
      }
    }
  }
}
  • 使用 reindex API 复制数据到新建的索引上
POST _reindex
{
  "source": {
    "index": "your_old_index_name"
  },
  "dest": {
    "index": "your_new_index_name"
  }
}

相关推荐

  1. 修改ES索引名称

    2024-07-10 08:40:08       7 阅读
  2. ES8导出的mapping批量修改索引

    2024-07-10 08:40:08       13 阅读
  3. Linux 修改文件名称

    2024-07-10 08:40:08       46 阅读
  4. mysql修改数据库名称

    2024-07-10 08:40:08       5 阅读
  5. ES清理索引镜像

    2024-07-10 08:40:08       19 阅读
  6. es 倒排索引

    2024-07-10 08:40:08       22 阅读
  7. es索引同步

    2024-07-10 08:40:08       11 阅读

最近更新

  1. 白骑士的PyCharm教学基础篇 1.3 调试与运行

    2024-07-10 08:40:08       0 阅读
  2. RK RGA _MMU unsupported memory larger then 4G!问题解决

    2024-07-10 08:40:08       0 阅读
  3. C语言中的指针函数和函数指针

    2024-07-10 08:40:08       0 阅读
  4. 人工智能:改变我们日常生活的无形力量

    2024-07-10 08:40:08       0 阅读
  5. F - Palindromic Expression (abc363)

    2024-07-10 08:40:08       0 阅读
  6. iOS应用冷启动优化,可以做哪些事情

    2024-07-10 08:40:08       0 阅读
  7. MySQL学习之事务,锁机制

    2024-07-10 08:40:08       0 阅读
  8. 神经架构搜索:目标检测的未来

    2024-07-10 08:40:08       0 阅读

热门阅读

  1. asp.netWebForm(.netFramework) CSRF漏洞

    2024-07-10 08:40:08       8 阅读
  2. Redis的使用(三)常见使用场景-session共享

    2024-07-10 08:40:08       7 阅读
  3. DS200CVMAG1AEB处理器 控制器 模块

    2024-07-10 08:40:08       8 阅读
  4. 插8张显卡的服务器有哪些?

    2024-07-10 08:40:08       6 阅读
  5. react antd table拖拽

    2024-07-10 08:40:08       8 阅读
  6. VB 关键字

    2024-07-10 08:40:08       9 阅读
  7. 前端面试题(13)答案版

    2024-07-10 08:40:08       5 阅读
  8. 智能警卫:Conda包依赖的自动监控之道

    2024-07-10 08:40:08       7 阅读
  9. vue处理重复请求

    2024-07-10 08:40:08       5 阅读
  10. 深度学习:从数据采集到模型测试的全面指南

    2024-07-10 08:40:08       7 阅读
  11. jQuery Mobile 实例

    2024-07-10 08:40:08       5 阅读