一、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/zh-hk/n/256959.html
微信掃一掃
支付寶掃一掃