es 修改 mapping 字段类型
Posted AresCarry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es 修改 mapping 字段类型相关的知识,希望对你有一定的参考价值。
一、原索引
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"create_date": {
"type": "date",
"format": "yyyy-MM-dd ||yyyy/MM/dd"
}
}
}
}
}
二、创建新索引
PUT my_index2
{
"mappings": {
"_doc": {
"properties": {
"create_date": {
"type": "text"
}
}
}
}
}
三、同步数据
POST _reindex
{
"source": {
"index": "my_index"
},
"dest": {
"index": "my_index2"
}
}
四、删除原索引
DELETE my_index
五、设置别名
POST /_aliases
{
"actions": [
{"add": {"index": "my_index2", "alias": "my_index"}}
]
}
遇到问题:
PUT my_index2 的时候,mapping没有自动生成,需要自己手动创建mapping:
先创建空的索引:
PUT /my_index2
{
}
再创建mapping:
POST /sku_vec_32_sync2/_doc/_mapping?pretty&include_type_name=true
{
"_doc": {
"properties": {
"vec": {
"type": "dense_vector",
"dims": 32
}
}
}
}
这里要加include_type_name=true
,有的版本高的 es 会判断,否则会报错误:
Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true.
以上是关于es 修改 mapping 字段类型的主要内容,如果未能解决你的问题,请参考以下文章