tencent cloud

Elasticsearch Service

新手指引
动态与公告
产品动态
产品公告
安全公告
产品简介
产品概述
Elasticsearch 版本支持说明
产品功能
高级特性(X-Pack)
产品优势
应用场景
能力与限制说明
相关概念
购买指南
计费概述
产品定价
ES Serverless 服务定价
欠费说明
ES 内核增强
内核版本发布记录
定向路由优化
压缩算法优化
FST Off Heap 内存优化
快速入门
集群规格和容量配置评估
创建集群
访问集群
ES Serverless 服务指南
服务概述
基本概念
5分钟快速体验
快速使用
访问控制
数据写入
数据查询
索引管理
告警管理
ES API 参考
相关问题
数据应用指南
数据应用概述
数据管理
ES 集群指南
集群管理
访问控制
集群多可用区部署
集群扩缩容
集群配置
插件配置
监控与告警
日志查询
数据备份
升级
实践教程
数据迁移和同步
应用场景构建
索引设置
SQL 支持
企业微信机器人接收 Watcher 告警
API 文档
History
Introduction
API Category
Instance APIs
Making API Requests
Data Types
Error Codes
常见问题
产品相关问题
ES 集群
词汇表
新版介绍
Elasticsearch Service 2020.07新版
Elasticsearch Service 2020.2新版
Elasticsearch Service 2019.12新版

默认索引模板说明和调整

PDF
聚焦模式
字号
最后更新时间: 2019-11-12 17:26:49

默认模板说明

索引模板是预先定义好的在创建新索引时自动应用的模板,主要包括索引设置、映射和模板优先级等配置。腾讯云 ES 在集群创建时提供了一个默认的索引模板,您可以在 Kibana 界面的 Dev Tools 中通过命令GET _template/default@template查看这个模板。下面是默认模板及其中配置的一些说明,可以根据需求适当调整这些配置。
{
"default@template": {
"order": 1, // 模板优先级,数值越大优先级越高
"index_patterns": [ // 模板应用的索引
"*"
],
"settings": {
"index": {
"max_result_window": "65536", // 最大查询窗口,如果查询的窗口超过该大小,会报 Result window is too large 错误,需要调大这个配置
"routing": {
"allocation": {
"include": {
"temperature": "hot"
}
}
},
"refresh_interval": "30s", // 索引刷新间隔,被索引的文档在该间隔后才能被查询到,如果对于查询实时性要求较高,可以适当调小该值,但是值过小将影响写入性能
"unassigned": {
"node_left": {
"delayed_timeout": "5m"
}
},
"translog": {
"sync_interval": "5s", // translog 刷盘间隔,值过小将影响写入性能
"durability": "async"
},
"number_of_replicas": "1" // 副本分片数
}
},
"mappings": {
"_default_": {
"_all": {
"enabled": false // 建议禁用,_all 字段会包含所有其他字段形成一个大字符串,会占用较多磁盘空间,也会影响写入性能
},
"dynamic_templates": [ // 动态模板
{
"message_full": { // 将名为 message_full 的字段动态映射为 text 和 keyword 类型
"match": "message_full",
"mapping": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 2048
}
}
}
}
},
{
"message": { // 将名为 message 的字段动态映射为 text 类型
"match": "message",
"mapping": {
"type": "text"
}
}
},
{
"strings": { // 将 string 类型字段动态映射为 keyword 类型
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
}
]
}
},
"aliases": {}
}
}

模板调整

您可以在 Kibana 界面的 Dev Tools 中通过命令PUT _template/my_template自定义自己的索引模板,并通过设置模板优先级order的数值大于默认模板优先级来覆盖默认的索引模板中的配置。
说明:
索引模板仅在索引创建时应用,因此模板调整不会对已有的索引产生影响。

调整主分片个数

在 Elasticsearch 5.6.4版本和6.4.3版本中,默认的索引主分片个数为5个。对于数据规模较小、索引个数较多的场景,建议调小主分片个数,以减轻索引元数据对堆内存的压力。您可以参考下面模板调整主分片个数:
{
"index_patterns" : ["*"],
"order" : 2, // 请确保模板中 order 字段的值大于1
"settings" : {
"index": {
"number_of_shards" : 1
}
}
}

调整字段类型

在默认模板中,我们将 string 类型字段动态映射为 keyword 类型,以防止对所有文本类型数据都进行全文索引。您可以根据业务需求,修改指定 string 类型字段为 text,使其可以全文索引:
{
"index_patterns" : ["*"],
"order" : 2, // 请确保模板中 order 字段的值大于1
"mappings": {
"properties": {
"字段名": {
"type": "text"
}
}
}
}

其他业务场景

例如,您希望让索引的文档在10s之后就能被搜索到,并应用于所有的 search-*索引,那么您可以新建一个如下的模板:
{
"index_patterns" : ["search-*"],
"order" : 2, // 请确保模板中 order 字段的值大于1
"settings" : {
"index": {
"refresh_interval": "10s"
}
}
}

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈