修改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       28 阅读
  2. ES8导出的mapping批量修改索引

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

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

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

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

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

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 08:40:08       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 08:40:08       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 08:40:08       90 阅读
  4. Python语言-面向对象

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

热门阅读

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

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

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

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

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

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

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

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

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

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

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

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