ElasticSearch修改Mapping字段类型
四:迁移完成后,新索引验证通过后,删除原索引,并将新索引别名(alias)设置为原索引名字。ES本身不允许直接修改mapping字段类型,索引采用reindex迁移方式。三、使用reindex迁移数据,(注意:数据库大的话,迁移会比较慢)服务器配置:2核4G20GiB ESSD云盘。本次实测数据,迁移耗时近20分钟,供参考。至此,本次mapping类型修改完成。一、获取原索引mapping。迁移数
·
ES本身不允许直接修改mapping字段类型,所以采用reindex迁移方式完成字段修改
一、获取原索引mapping
GET /test_index/_mapping
{
"test_index" : {
"mappings" : {
"properties" : {
"id" : {
"type" : "text"
},
"name" : {
"type" : "text"
},
"update_time" : {
"type" : "date",
"format" : "yyyy-MM-dd'T'HH:mm:ssZ||yyyy-MM-dd'T'HH:mm:ss"
}
}
}
}
}
二、创建新索引
PUT /new_test_index #新创建索引new_test_index
{
"settings": {
"number_of_shards": 5, #设置分片数,原索引为5
"number_of_replicas": 1 #设置副本数,原索引为1
},
"mappings": {
"properties": {
"id": {
"type": "keyword" #将id字段类型设置为keyword
},
"name": {
"type": "keyword" #将name字段类型设置为keyword
},
"update_time" : {
"type" : "date",
"format" : "yyyy-MM-dd'T'HH:mm:ssZ||yyyy-MM-dd'T'HH:mm:ss"
}
}
}
}
创建完成后可执行 GET /new_test_index/_mapping 确认字段是否正确
三、使用reindex迁移数据,(注意:数据库大的话,迁移会比较慢)
本次实测数据,迁移耗时近20分钟,供参考。
ES版本:7.7.1
迁移数据量:7828711
容量大小为 :4.6GB
服务器配置:2核4G 20GiB ESSD云盘
POST /_reindex?wait_for_completion=false
{
"source": {
"index": "test_index" #原索引
},
"dest": {
"index": "new_test_index" #新索引
}
}
另提供阿里云ES文档数据供参考:

四:迁移完成后,新索引验证通过后,删除原索引,并将新索引别名(alias)设置为原索引名字
PUT /new_test_index/_alias/test_index #设置新索引 new_test_index 别名为 test_index
GET /new_test_index/_alias #查看别名是否成功
#可以看到别名已设置成功
{
"new_test_index" : {
"aliases" : {
"test_index" : { } #别名已经是test_index
}
}
}
至此,本次mapping类型修改完成。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)