国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Elasticsearch之別名

不知名網(wǎng)友 / 1860人閱讀

摘要:如或者接口接口用于根據(jù)一系列條件將別名指向一個(gè)新的索引,這些條件包括存續(xù)時(shí)間文檔數(shù)量和存儲(chǔ)容量等。但這種別名滾動(dòng)并不會(huì)自動(dòng)完成,需要主動(dòng)調(diào)用接口。

別名,有點(diǎn)類似數(shù)據(jù)庫的視圖,別名一般都會(huì)和一些過濾條件相結(jié)合,可以做到即使是同一個(gè)索引上,讓不同人看到不同的數(shù)據(jù)。別名的訪問接口是_alias。

創(chuàng)建索引時(shí)添加別名

PUT test_index_v1{  "aliases": {    "test_index": {}  }}

為已有索引添加別名

put test_index_v2put test_index_v2/_alias/test_index2

查詢所有的別名

GET _alias{  "test_index_v1" : {    "aliases" : {      "test_index" : { }    }  },  "test_index_v2" : {    "aliases" : {      "test_index2" : { }    }  }}GET _cat/aliases?valias                index                  filter routing.index routing.search is_write_index.kibana_task_manager .kibana_task_manager_1 -      -             -              -.kibana              .kibana_1              -      -             -              -test_index           test_index_v1          -      -             -              -test_index2          test_index_v2          -      -             -              -

查詢指定索引的別名

GET test_index_v1/_alias{  "test_index_v1" : {    "aliases" : {      "test_index" : { }    }  }}

刪除別名

delete test_index_v2/_alias/test_index2

通過別名查詢

別名的使用和索引差不多,比如:

put study_route/_alias/srget sr/_search

批量操作

同時(shí)_aliases接口可以做批量操作,比如通過_aliases接口將一個(gè)別名關(guān)聯(lián)多個(gè)索引:

POST _aliases{  "actions": [    {      "add": {        "index": "logs-nginx.access-prod",        "alias": "logs"      }    }  ]}

index and indices 參數(shù)還支持通配符*:

POST _aliases{  "actions": [    {      "add": {        "index": "logs-*",        "alias": "logs"      }    }  ]}

或者對(duì)于同一個(gè)index,我們給不同人看到不同的數(shù)據(jù),如my_index有個(gè)字段是team,team字段記錄了該數(shù)據(jù)是那個(gè)team 的。team之間的數(shù)據(jù)是不可見的。

POST /_aliases{  "actions": [    {      "add": {        "index": "my_index",        "alias": "my_index_teamA_alias",        "filter": {          "term": {            "team": "teamA"          }        }      }    },    {      "add": {        "index": "my_index",        "alias": "my_index_teamB_alias",        "filter": {          "term": {            "team": "teamB"          }        }      }    },    {      "add": {        "index": "my_index",        "alias": "my_index_team_alias"      }    }  ]}

只要有可能,盡量使用別名,推薦為Elasticsearch的每個(gè)索引都使用別名,因?yàn)樵谖磥碇亟ㄋ饕臅r(shí)候,別名會(huì)賦予你更多的靈活性。假設(shè)一開始創(chuàng)建的索引只有一個(gè)主分片,之后你又決定為索引擴(kuò)容。如果為原有的索引使用的是別名,現(xiàn)在你可以修改別名讓其指向額外創(chuàng)建的新索引,而無須修改被搜索的索引之名稱(假設(shè)一開始你就為搜索使用了別名)。

另一個(gè)有用的特性是,在不同的索引中創(chuàng)建窗口。比如,如果為數(shù)據(jù)創(chuàng)建了每日索引,你可能期望一個(gè)滑動(dòng)窗口涵蓋過去一周的數(shù)據(jù),別名就稱為last7days。然后,每天創(chuàng)建新的每日索引時(shí),你可以將其加入別名,同時(shí)停用或者刪除第8天前的舊索引。

別名還能提供另一個(gè)特性,那就是路由。假設(shè)別名指向一個(gè)多帶帶的索引,那么它們也可以和路由一起使用,在查詢或索引
的時(shí)候自動(dòng)地使用路由值。如:

POST /_aliases{  "actions": [    {      "add": {        "index": "test_index",        "alias": "my_index_alias",        "filter": {          "match": {            "lang": "Java"          }        },        "routing": "AKey"      }    },    {      "add": {        "index": "test_index",        "alias": "my_index_alias2",        "filter": {          "match": {            "lang": "Java"          }        },        "routing": "BKey"      }    }  ]}

或者:

PUT test_index/_alias/ts{  "filter": {    "match": {      "lang": "Java"    }  },  "routing": "CKey"} 

_rollover接口

_rollover接口用于根據(jù)一系列條件將別名指向一個(gè)新的索引,這些條件包括存續(xù)時(shí)間、文檔數(shù)量和存儲(chǔ)容量等。這與日志文件使用的文件滾動(dòng)類似,文件滾動(dòng)是通過不斷創(chuàng)建新文件并滾動(dòng)舊文件來保證日志文件不會(huì)過于龐大,而_rollover接口則是通過不斷將別名指向新的索引以保證索引容量不會(huì)過大。但這種別名滾動(dòng)并不會(huì)自動(dòng)完成,需要主動(dòng)調(diào)用_rollover接口。

別名滾動(dòng)的條件可通過conditions參數(shù)設(shè)置,包括max_age、max_docs和max_size等三個(gè)子參數(shù)。

例如,創(chuàng)建一個(gè)索引logs-1并分配別名logs:

PUT logs-1{  "aliases": {    "logs": {}  }}

然后調(diào)用logs別名的_rollover接口設(shè)置別名滾動(dòng)條件,如:

POST /logs/_rollover{  "conditions": {    "max_age": "10s",    "max_docs": 10000,    "max_size": "4gb"  }}{  "acknowledged" : true,  "shards_acknowledged" : true,  "old_index" : "logs-1",  "new_index" : "logs-000002",  "rolled_over" : true,  "dry_run" : false,  "conditions" : {    "[max_size: 4gb]" : false,    "[max_age: 10s]" : true,    "[max_docs: 10000]" : false  }}

在示例中,logs別名指向logs-1索引,最大存活周期為10s,最大文檔數(shù)量10000條,最大存儲(chǔ)容量4GB。為了演示效果,特意將最大存活周期設(shè)置為10秒,從返回結(jié)果的conditions屬性來看,max_age這個(gè)條件返回true,所以會(huì)觸發(fā)索引滾動(dòng)。

通過_cat/indices接口就會(huì)發(fā)現(xiàn)有新的索引logs-000002產(chǎn)生:

get _cat/indices?vhealth status index                         uuid                   pri rep docs.count docs.deleted store.size pri.store.sizeyellow open   logs-1                        jjNxkUn1T1yD245qUH6SVQ   1   1          0            0       283b           283byellow open   logs-000002                   H85Y0qwQRnucttIc53t8CQ   1   1          0            0       230b           230b

再來看看別名:

get _cat/aliases?valias                index                  filter routing.index routing.search is_write_indexlogs                 logs-000002            -      -             -              -

logs-1的別名已經(jīng)被清空,而logs-000002的別名中則已經(jīng)添加了logs。新索引的命名規(guī)則在原索引名稱數(shù)字的基礎(chǔ)上加 1,并且將數(shù)值長度補(bǔ)0湊足6位。所以使用_rollover接口時(shí),要求索引名稱必須以數(shù)字結(jié)尾,數(shù)字與前綴之間使用連接線“-”連接。

由于_rollover接口在滾動(dòng)新索引時(shí),會(huì)將別名與原索引的關(guān)聯(lián)取消,所以通過別名再想查找原文檔就不可能了。為了保證原文檔可檢索,可以通過別名is_write_index參數(shù)保留索引與別名的關(guān)系。當(dāng)使用is_write_index參數(shù)設(shè)置了哪一個(gè)索引為寫索引時(shí),_rollover接口滾動(dòng)別名指向索引時(shí)將不會(huì)取消別名與原索引之間的關(guān)系。它會(huì)將原索引的is_write_index參數(shù)設(shè)置為false,并將新索引的is_write_index參數(shù)設(shè)置為true。

例如在創(chuàng)建logs-4時(shí)指定參數(shù)is_write_index為true:

PUT /logs-4{  "aliases": {    "logs4": {      "is_write_index": true    }  }}

然后調(diào)用_rollover接口:

POST logs4/_rollover{  "conditions": {    "max_age": "10s",    "max_docs": 10000,    "max_size": "4gb"  }}{  "acknowledged" : true,  "shards_acknowledged" : true,  "old_index" : "logs-4",  "new_index" : "logs-000005",  "rolled_over" : true,  "dry_run" : false,  "conditions" : {    "[max_size: 4gb]" : false,    "[max_age: 10s]" : true,    "[max_docs: 10000]" : false  }}

然后查詢索引的別名:

GET _cat/aliases?valias                index                  filter routing.index routing.search is_write_indexlogs4                logs-4                 -      -             -              falselogs4                logs-000005            -      -             -              t

會(huì)發(fā)現(xiàn)logs-4的is_write_index參數(shù)被設(shè)置為false,而新生成索引logs-000005的is_write_index參數(shù)則為true。在兩者的別名列表中都包含有l(wèi)ogs4,可以繼續(xù)通過logs別名對(duì)原索引進(jìn)行查詢。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/125636.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<