ES索引结构升级-笔记

news/2025/2/7 14:03:36/

ES中索引的字段类型是不可修改的,只能是重新创建一个索引并设置好mapping,然后再将老索引的数据复制过去

  1. 查看老索引mapping
GET /twitter/_mappings

在这里插入图片描述

  1. 创建new索引,并指定mapping
PUT /twitter410
{"mappings": {"properties": {"author_id": {"type": "long"},"author_name": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"created_at": {"type": "keyword"},"message": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}
}

在这里插入图片描述

  1. 将老的索引中的数据复制到新的索引中
POST _reindex
{"source":{"index":"twitter" //老索引名},"dest":{"index":"twitter410"  //新索引名}
}

在这里插入图片描述

  1. 删除老索引twitter
# curl -XDELETE -u elastic:elasticpasswd http://localhost:9200/index_name
{"acknowledged":true}

在这里插入图片描述

  1. 修改new索引名 为老索引名

法1,通过起别名方式 (建议使用这种方式,不需要多次reindex)

POST _aliases
{"actions": [{"add": {"index": "twitter410","alias": "twitter"}}]
}

在这里插入图片描述

法2,再建一个索引叫twitter,然后把twitter410 进行 reindex到twitter;

即执行PUT创建后,再执行POST-reindex

PUT /twitter
{"mappings": {"properties": {"author_id": {"type": "long"},"author_name": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"created_at": {"type": "keyword"},"message": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}
}POST _reindex
{"source": {"index": "twitter410"},"dest": {"index": "twitter"}
}

当新索引结构里字段名 和老索引结构里的不一样时,改怎么迁移数据

场景:twitter2023140这个新索引的信息内容字段是msg_content ,而老索引里是message ,执行数据迁移时需要特殊指定reindex的迁移字段转换逻辑。

POST _reindex
{"source": {"index": "twitter"},"dest": {"index": "twitter2023140"},"script":{"source":"ctx._source.msg_content=ctx._source.remove(\"message\")"}
}

在这里插入图片描述


http://www.ppmy.cn/news/60272.html

相关文章

Hyperf中的其它事项

Hyperf中的其它事项 关于 Hyperf 其它的内容我们就不多说了,毕竟框架这东西用得多了自然也就熟悉了。最重要的是——我的水平还不足以去深入地分析这个框架! 好吧,其它的功能大家可以去官方文档详细了解,毕竟国人自己做的框架&a…

档案库房建设需要遵守的一些规定

各单位在建设档案室时需要对照《机关档案管理规定》《档案馆建筑设计规范》关于档案库房的相关标准,对库房的位置、面积、承重、安全等方面进行全面考虑,建设符合国家规定的档案库房。 档案库房建设需要遵守什么规定? 一、《机关档案管理规定…

【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用

博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: Go语言核心编程近期目标:写好专栏的每一篇文章 文章目录 一、…

拐点已至!被比亚迪赶超,大众中国打响「翻身战」

随着蔚来、理想等新势力在高端车型对传统BBA实现部分价位区间的销量超越,今年3月,比亚迪在中低端车型市场,实现对大众品牌的反超。 数据显示,3月,比亚迪品牌交付新车达到18.33万辆,而大众品牌(…

[Pandas] 查看DataFrame的常用属性

导入数据 import pandas as pddf pd.DataFrame([[L123,A,0,123],[L456,A,1,456],[L437,C,0,789],[L112,B,1,741],[L211,A,0,852],[L985,B,1,963]],columns[Material,Level,Passing,LT]) df 1.dtypes: 查看DataFrame中各列的数据类型 df.dtypes会返回每个字段的数据类型及Da…

Day40 实现多线程

实现多线程 进程:正在运行的程序(是系统进行资源分配和调用的独立单位;每个进程都有自己的内存空间和系统资源) 线程:进程种的单个顺序控制流,是一条执行路径(单线程:一个进程只有一…

GPT到底要砸掉多少打工人的饭碗?

今天我们继续来聊GPT 对工作的冲击问题 首先分享一个我最近在网上看到的 利用AI的暗黑方法 就是接下来 在很多对AI无感的那些公司里面 尤其是非科技公司 未来一两年 其实可能是打工人混日子的黄金时期 因为懂AI的下属 用1/10的时间 就可以把工作做得比原来更好 但是不懂AI的老板…

100+Python挑战性编程练习系列 -- day 6

Question 18 一个网站需要用户输入用户名和密码注册。编写一个程序来检查用户输入的密码的有效性。 以下是检查密码的标准: [a-z]之间至少有1个字母 [0-9]之间至少有1个数字 [A-Z]之间至少有1个字母 [$#]中至少有1个字符 交易密码最小长度:6 交易密码最大…