当前位置: 首页 > news >正文

修改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"}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue3中谷歌地图+外网申请-原生-实现地址输入搜索+点击地图获取地址回显 +获取国外的geoJson实现省市区级联选择
  • 什么是软件定义安全SDSec
  • Archery 之SQL审核系统部署
  • MT6825磁编码IC在智能双旋机器人中的应用
  • 端到端拥塞控制的本质
  • CSS实现table表格:隔行换色的效果
  • 使用F1C200S从零制作掌机之debian文件系统完善NES
  • 电压反馈型运算放大器的增益和带宽
  • Delta的最新更新可让iPad用户同时模拟多款游戏
  • Redis6.2.1版本集群新加副本
  • Ubuntu 修改~/.bashrc终端选择是否使用annconda环境
  • 介绍一款数据准实时复制(CDC)中间件 `Debezium`
  • 绘画平台小程序的设计
  • mysql笔记1
  • 内存对齐的定义以及它的重要性
  • 【剑指offer】让抽象问题具体化
  • gulp 教程
  • Hibernate最全面试题
  • JavaScript DOM 10 - 滚动
  • JavaScript设计模式与开发实践系列之策略模式
  • js 实现textarea输入字数提示
  • js学习笔记
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • SpingCloudBus整合RabbitMQ
  • tab.js分享及浏览器兼容性问题汇总
  • Vue学习第二天
  • Xmanager 远程桌面 CentOS 7
  • 阿里云购买磁盘后挂载
  • 突破自己的技术思维
  • 小试R空间处理新库sf
  • 智能合约Solidity教程-事件和日志(一)
  • 积累各种好的链接
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #if和#ifdef区别
  • #Linux(Source Insight安装及工程建立)
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #pragma pack(1)
  • #QT 笔记一
  • #QT(一种朴素的计算器实现方法)
  • #传输# #传输数据判断#
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (09)Hive——CTE 公共表达式
  • (1) caustics\
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (LeetCode) T14. Longest Common Prefix
  • (solr系列:一)使用tomcat部署solr服务
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (六)Hibernate的二级缓存
  • (十七)Flink 容错机制
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)kafka实战——kafka源码编译启动
  • (一)认识微服务
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)跟我一起学习VIM - The Life Changing Editor