删除弹性搜索动态模板

时间:2017-02-11 21:10:56

标签: elasticsearch mapping kibana

我意外地将默认映射更改为

{
"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设置为某些字段。 谢谢你的建议。

2 个答案:

答案 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": [] }'

这会将动态模板更新为一个空数组。