修改字段映射类型

es不支持直接修改字段类型,解决思路:

  1. 新建临时索引,执行字段类型,复制数据
  2. 删除旧索引,重建同名索引,从临时索引复制数据

举例:
我这有个学生的索引:

{
	"properties": {
		"name": {
			"type": "text",
			"index": true
		},
        "nickname": {
			"type": "text",
			"index": true
		},
		"sex": {
			"type": "text",
			"index": false
		},
		"age": {
			"type": "long",
			"index": false
		}
	}
}

Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_mapping查看索引
在这里插入图片描述
服务器响应结果:
在这里插入图片描述
我想要把sexageindex设置为true

1、获取旧索引的字段映射

GET /users/_mapping
在这里插入图片描述

2、创建临时索引带映射

PUT: http://127.0.0.1:9200/student_temp
在这里插入图片描述
服务器响应结果:
在这里插入图片描述

然后正确的创建映射
PUT: http://127.0.0.1:9200/student_temp/_mapping

{
	"properties": {
		"name": {
			"type": "text",
			"index": true
		},
        "nickname": {
			"type": "text",
			"index": true
		},
		"sex": {
			"type": "text",
			"index": true
		},
		"age": {
			"type": "long",
			"index": true
		}
	}
}

在这里插入图片描述

响应结果:
在这里插入图片描述

3、复制数据

POST: http://127.0.0.1:9200/_reindex


{
  "source": {
    "index": "student"
  }, 
  "dest": {
    "index": "student_temp"
  }
}

在这里插入图片描述

4、删除旧索引

DELETE: http://127.0.0.1:9200/student
在这里插入图片描述

5、创建新的正确的索引带映射

  1. PUT:http://127.0.0.1:9200/student
  2. PUT: http://127.0.0.1:9200/student_/_mapping
{
	"properties": {
		"name": {
			"type": "text",
			"index": true
		},
        "nickname": {
			"type": "text",
			"index": true
		},
		"sex": {
			"type": "text",
			"index": true
		},
		"age": {
			"type": "long",
			"index": true
		}
	}
}

在这里插入图片描述

6、复制数据

POST http://127.0.0.1:9200/_reindex

在这里插入图片描述
查看数据:
Get请求:http://127.0.0.1:9200/student/_search

{
 "query": {
 	"match_all": {}
 }
}

在这里插入图片描述

7、删除临时索引就欧克啦

DELETE请求: http://127.0.0.1:9200/student_temp
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值