Elasticsearch的模板template和映射mapping
版本说明
本文写于 2022-03,基于 Elasticsearch 7.x。
在 8.x 上的差异:_type 字段已在 7.x 中弃用并在 8.x 中彻底移除,如本文示例涉及 _type,在 8.x 上需去除该层级;索引模板(Index Template)与映射(Mapping)的核心概念与语法本身未变。
# 在Elasticsearch中,索引有两个重要的元素,即模板(template)和映射(mapping)
- 模板:Elasticsearch中的模板可以自动为新创建的索引应用设置。模板通常用于设置索引的分片、副本数和分析器等参数。它可以根据索引名称、通配符模式或其他条件来匹配索引名称,并在新创建的索引上自动应用相关设置。例如,以下是一个用于匹配以“log”开头的索引名称的模板示例:
PUT _template/log_template
{
"index_patterns": ["log*"],
"settings": {
"number_of_shards": 2,
"number_of_replicas": 1
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
上述模板将为所有以“log”开头的索引名称自动设置分片数为2,副本数为1。
- 映射:Elasticsearch中的映射用于定义索引中的字段类型和属性。它可以控制文本如何被分析、日期如何格式化、数值如何处理等等。映射通常在索引创建时或索引数据更新时使用。例如,以下是一个用于定义“user”字段类型为字符串类型并启用“keyword”属性的映射示例:
PUT my_index
{
"mappings": {
"properties": {
"user": {
"type": "keyword"
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
上述映射将为“my_index”索引的“user”字段定义一个字符串类型,并启用“keyword”属性,这将使Elasticsearch将其视为整个字符串而不是单独的词项。
需要注意的是,模板和映射都是可选的,并且可以根据需要自定义。Elasticsearch还提供了许多其他的索引设置和属性,可以根据具体需求进行设置。
上次更新: 8/7/2026
- 02
- ORDER BY 配合 LIMIT 触发的索引选择陷阱 原创08-07
- 03
- Nginx 运维知识地图:从配置基础到反向代理实战 原创07-29