彈性搜索:7.15.2
我們以這種方式創建了一個別名:
POST _aliases
{
"actions": [
{
"add": {
"index": "my-index-*",
"alias": "my-alias",
"is_write_index": false
}
}
]
}
如果我得到別名資訊,我可以看到
GET _alias/my-alias
{
"my-index-2021.11.30-000001" : {
"aliases" : {
"my-alias" : { }
}
}
}
然而,滾動策略自動創建了另一個索引:my-index-2021.11.30-000002但是這個索引不是由之前創建的別名指向的 my-alias
如果我使用相同的索引模式從頭開始創建一個新別名,我可以看到兩者:
POST _aliases
{
"actions": [
{
"add": {
"index": "my-index-*",
"alias": "my-alias-2",
"is_write_index": false
}
}
]
}
GET _alias/my-alias-2
{
"my-index-2021.11.30-000001" : {
"aliases" : {
"my-alias-2" : { }
}
},
"my-index-2021.11.30-000002" : {
"aliases" : {
"my-alias-2" : { }
}
}
}
有什么我想念的嗎?我還希望在沒有任何手動操作的情況下看到別名 my-alias 指向的 *-000002 索引。
如果索引大小大于 X GB,則翻轉策略只是創建一個新索引
或者我是否必須修改索引模板才能自動添加“讀取”別名?我已經在模板中指定了別名,但這是翻轉策略的寫入別名(由于我們的自定義 elasticsearch 配置,我無法將其用于搜索)
{
"index": {
"lifecycle": {
"rollover_alias": "my-write-alias"
}
}
}
uj5u.com熱心網友回復:
當您使用POST _aliases它創建別名時,只會在當前存在的匹配索引上創建別名,但如果稍后創建新索引并符合條件,則別名將不會添加到該索引中。
你需要做的是:
- 創建一個包含別名定義的索引模板
- 將您的翻轉策略分配給您的模板索引設定(即
index.lifecycle.name和index.lifecycle.rollover_alias設定)
基本上,像這樣:
PUT _index_template/my_index_template
{
"index_patterns": ["my-index-*"],
"template": {
"alias": {
"my-alias": {}
},
"mappings": {
...
},
"settings": {
"index.lifecycle.name": "my_policy",
"index.lifecycle.rollover_alias": "my_write_alias"
}
}
}
設定完成后,每次生命周期策略創建新索引時my-index-2021.MM.dd-000xyz,都會指向該新索引my-alias。另外值得注意的是,my_write_alias將始終指向序列的最新索引,即寫入索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/375326.html
標籤:弹性搜索
