原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/indices-templates.html
基本配置:
# Don't Check shard when startup
index.shard.check_on_startup : false
# Enabled automatic mapping creation
index.mapper.dynamic : true
# Enabled automatic index creation
action.auto_create_index : true
问题描述:
Elasticsearch 中 _ string _ 型字段默认是_ analyzed _,我们需要根据业务需求,将某些字段设为 _ not_analyzed _。
Elasticsearch 索引模板介绍:
索引模板可以在新建索引后,自动将模板配置信息应用到指定的索引上。模板由_ template _, _ settings _, _ mappings _, _ aliases _ 等构成。通过** template ** 属性(支持简单的规则匹配)来控制该模板将应用到哪些索引上。** template只在索引创建时使用,修改模板不影响已存在的数据。**
由此可见,Elasticsearch 索引模板可以解决上述问题。
示例:
PUT /_template/template_1
{
"template": "te*",
"settings": {
"number_of_shards": 1
},
"mappings": {
"type1": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
示例解释:
1、模板名:template_1
2、匹配规则:te*,即te开头的索引会使用此模板;
3、示例中将type1 的 host_name (_ string _ )设为 _ not_analyzed _。