我意外地将默认映射更改为
{
"template": "*",
"mappings": {
"_default_": {
"properties" : {
"message": {"type":"string", "index": "analyzed"}
},
"dynamic_templates": [
{
"my_template": {
"match_mapping_type": "string",
"mapping": {
"index": "not_analyzed"
}
}
}
]
}
}
}
现在每个新索引的所有字符串字段都为not_indexed。我想删除这个动态模板并更改所有内容。我的目标是将not_indexed设置为某些字段。 谢谢你的建议。
答案 0 :(得分:2)
如果您正在使用sense / kibana,请使用...
DELETE _template/{template_name or id}
使用CURL ...
curl -X DELETE localhost:9200/_template/{template_name or id}
可以参考下面的链接
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/indices-templates.html#delete
要在更正模板后重新索引数据,请使用
POST /_reindex
{
"source": {
"index": "old-index-name"
},
"dest": {
"index": "new-index-name"
}
}
答案 1 :(得分:0)
@ lakhani69的解决方案在Elasticsearch 6.8上不适合我,我所做的是:
curl --location --request POST http://localhost:9200/index_name/_mapping/mapping_name --header 'Content-Type: application/json' --data-raw '{
"dynamic_templates": [] }'
这会将动态模板更新为一个空数组。