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

ElasticSearch 因为索引字段改变,平滑迁移索引

问题:
某个索引创建时,没有按照想要的mapping,进行创建。
有个字段是text,不是想要的keyWord

此时需要重新按照mapping创建新索引,并迁移数据,

一、不使用别名的方式迁移

1. 创建新索引:

使用 Elasticsearch 的 PUT 请求创建一个新的索引,例如 PUT /new_index。
在创建新索引时,确保按照想要的mapping 进行了创建: GET /{indexName}/_mapping

2.导出旧索引数据到备份:

可以通过使用 Elasticsearch 的 Reindex API 或其他工具来导出旧索引中的数据。
执行导出操作时,需要指定源索引(旧索引)和目标索引(新索引)的名称,以及需要导出的数据范围等参数。

POST /_reindex
{
“source”: {
“index”: “{old_indexName}”
},
“dest”: {
“index”: “{bak_review_task}”
}
}

3.导入数据到新索引:

在导出数据后,可以使用 Reindex API 或其他工具将数据导入到新的索引中。
POST /_reindex
{
“source”: {
“index”: “{bak_review_task}”
},
“dest”: {
“index”: “{new_indexName}”
}
}

在数据导入完成后,需要对新索引中的数据进行验证,以确保数据迁移成功。
可以使用 Elasticsearch 的查询功能对新索引中的数据进行检查,例如使用 GET 请求查询新索引中的文档。
更新别名:

一旦确认数据迁移成功,可以更新别名,使其指向新索引,而不是旧索引。
可以使用 Elasticsearch 的 PUT 请求来更新别名,例如 PUT /_aliases。

4.删除旧索引:

最后,可以删除旧索引,以释放存储空间并避免不必要的资源浪费。
可以使用 Elasticsearch 的 DELETE 请求来删除旧索引,例如 DELETE /old_index。

二、使用别名的方式做数据迁移

http://www.lryc.cn/news/167228.html

相关文章:

  • invalid use of incomplete type ‘class Ui::xxx‘
  • 变压器寿命预测(python代码,Logistic Regression模型预测效果一般,可以做对比实验)
  • 微信小程序-增加隐私协议弹窗
  • 分布式事务解决方案之可靠消息最终一致性
  • ROS学习笔记(四)---使用 VScode 启动launch文件运行多个节点
  • 编译Redis时报错: jemalloc/jemalloc.h: No such file or directory
  • LLM 05-大模型法律
  • 1-5 AUTOSAR数据交换文件ARXML
  • 学习尚硅谷HTML+CSS总结
  • 自己设计CPU学习之路——基于《Xilinx FPGA应用开发》
  • 数据结构与算法:树
  • Spark 【Spark SQL(一)DataFrame的创建、保存与基本操作】
  • 026-从零搭建微服务-文件服务(二)
  • Jenkins 页面部分显示Http状态403 被禁止
  • ajax day4
  • 8.Spring EL与ExpressionParser
  • Go和Java实现迭代器模式
  • 如何在 Vue.js 和 Nuxt.js 之间做出选择?
  • (二十三)大数据实战——Flume数据采集之采集数据聚合案例实战
  • Linux: network: dhcp: mtu 这个里面也有关于网卡的MTU设置;
  • Android中使用图片水印,并且能够在线下载字体并应用于水印
  • HTTP文件服务
  • nginx配置获取客户端的真实ip
  • 1990-2022上市公司董监高学历工资特征信息数据/上市公司高管信息数据
  • Java程序连接 Mysql 超时问题 - 数据包过大,导致超时,# 配置网络超时时间 socketTimeout: 1800000
  • c++分层最短路(洛谷飞行路线)acwing版
  • Python bs4 BeautifulSoup库使用记录
  • Jmeter系列-插件安装(5)
  • spring aop源码解析
  • 使用Unity的Input.GetAxis(““)控制物体移动、旋转