一、ES索引模板别名
ES中的索引模板可通过别名来标识。别名是一个指向一个或多个索引的不变名称,可以在查询时使用,并可动态的为当前索引选择别名
PUT /_aliases
{
"actions": [
{
"add": {
"index": "my_index",
"alias": "my_index_alias"
}
}
]
}在上述代码中,”my_index”是被操作的索引名称,”my_index_alias”是为它定义的别名
二、ES索引模板创建
创建索引模板的过程是创建和定义具有相似字段和属性结构的ES索引的一种简单方法
PUT _template/template_1
{
"index_patterns": ["te*", "bar*"],
"settings": {
"number_of_shards": 1
},
"mappings": {
"_doc": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z yyyy"
}
}
}
}
}示例代码中匹配任何以 ‘te’ 或 ‘bar’为前缀开头的索引,索引只有一个分片,’_doc’是类型名称,mappings下定义了字段名称、数据类型和格式等属性
三、ES索引模板设置别名
在ES索引模板中可以将别名分配给多个索引模式,这通常用于设置别名,以便它们可以在相似的索引之间灵活切换
PUT _template/template_1
{
"index_patterns": ["te*", "bar*"],
"aliases": {
"alias_1": {},
"alias_2": {
"filter": {
"term": {"user": "kimchy"}
},
"routing": "kimchy"
}
}
}在上述代码中,除基本索引数据结构之外,还定义了“alias_1”和“alias_2”两个别名,其中“alias_2”定义了一些过滤规则和路由信息
四、ES索引模板查询
ES索引模板可以使用索引模板名称或者索引模式(用于匹配动态创建的索引)进行查询
GET _template/template_1 GET _template/te*
五、ES索引模板使用场景
索引模板允许我们为一组索引指定相同的映射、设置和别名。我们可以使用这种方法进行索引自动化创建、更新、删除等操作
六、ES索引模板模糊匹配字段名称
在索引模板中,可以使用通配符模式定义字段名
PUT _template/template_1
{
"index_patterns": ["*"],
"log-*": {
"properties": {
"tags": {
"type": "keyword"
},
"message": {
"type": "text"
}
}
}
}在上述代码中,“log-*”表示只匹配名称以“log-”开头的所有索引模板
七、ES索引模板删除
删除索引模板是一个简单的操作,只需要选择要删除的索引模板并该操作即可
DELETE _template/template_1
八、ES索引模板丢失
当索引创建失败时,有时会忘记指定映射信息。这样,将使用默认的Elasticsearch映射。当尝试在此类索引中调用没有映射的字段时,将在丢失的映射字段中得到错误
九、ES索引模板没生效
当在映射和模板定义期间进行更改时,请记得删除索引并重新创建新的索引。反映更改后的映射和模板定义
ES索引模板是一个非常有用的工具,它可以让我们根据需要快速定义和更新索引结构。以上是关于ES索引模板的一些重要知识点及对应代码示例。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/256959.html
微信扫一扫
支付宝扫一扫