ElasticSearch7.2之索引别名的使⽤

  • 别名有什么⽤

在开发中,随着业务需求的迭代,较⽼的业务逻辑就要⾯临更新甚⾄是重构,⽽对于es来说,为了适应新的业务逻辑,可能就要对原有的索引做⼀些修改,⽐如对某些字段做调整,甚⾄是重建索引。⽽做这些操作的时候,可能会对业务造成影响,甚⾄是停机调整等问题。由此,es提供了索引别名来解决这些问题。 索引别名就像⼀个快捷⽅式或是软连接,可以指向⼀个或多个索引,也可以给任意⼀个需要索引名的API来使⽤。别名的应⽤为程序提供了极⼤地灵活性

  • 查询别名

GET /nba/_alias

GET / _alias
 
  • 新增别名

POST / _aliases
{
    "actions": [
        {
            "add": {
                "index": "nba",
                "alias": "nba_v1.0"
            }
        }
    ]
}
PUT /nba/_alias/nba_v.1.1
 
  • 删除别名

POST / _aliases
{
    "actions": [
        {
            "remove": {
                "index": "nba",
                "alias": "nba_v1.0"
            }
        }
    ]
}
DELETE / nba / _alias / nba_v1 .1
  • 重命名

POST / _aliases
{
    "actions": [
        {
            "remove": {
                "index": "nba",
                "alias": "nba_v1.0"
            }
        },
        {
            "add": {
                "index": "nba",
                "alias": "nba_v2.0"
            }
        }
    ]
}
 
  • 为多个索引指定⼀个别名

 
POST / _aliases
{
    "actions": [
        {
            "add": {
                "index": "nba",
                "alias": "national_player"
            }
        },
        {
            "add": {
                "index": "wnba",
                "alias": "national_player"
            }
        }
    ]
}
 
  • 为同个索引指定多个别名

POST / _aliases
{
    "actions": [
        {
            "add": {
                "index": "nba",
                "alias": "nba_v2.1"
            }
        },
        {
            "add": {
                "index": "nba",
                "alias": "nba_v2.2"
            }
        }
    ]
}
  • 通过别名读索引

  • 当别名指定了⼀个索引,则查出⼀个索引

GET /nba_v2.1

  • 当别名指定了多个索引,则查出多个索引

GET /national_player

  • 通过别名写索引

当别名指定了⼀个索引,则可以做写的操作

 
 
POST / nba_v2 .1 / _doc / 566

{
    "countryEn": "Croatia",
    "teamName": "快船",
    "birthDay": 858661200000,
    "country": "克罗地亚",
    "teamCityEn": "LA",
    "code": "ivica_zubac",
    "displayAffiliation": "Croatia",
    "displayName": "伊维察 祖巴茨哥哥",
    "schoolType": "",
    "teamConference": "⻄部",
    "teamConferenceEn": "Western",
    "weight": "108.9 公⽄",
    "teamCity": "洛杉矶",
    "playYear": 3,
    "jerseyNo": "40",
    "teamNameEn": "Clippers",
    "draft": 2016,
    "displayNameEn": "Ivica Zubac",
    "heightValue": 2.16,
    "birthDayStr": "1997-03-18",
    "position": "中锋",
    "age": 22,
    "playerId": "1627826"
}

当别名指定了多个索引,可以指定写某个索引

POST / _aliases
{
    "actions": [
        {
            "add": {
                "index": "nba",
                "alias": "national_player",
               
"is_write_index": true
            }
        },
        {
            "add": {
                "index": "wnba",
                "alias": "national_player"
            }
        }
    ]
}
  
POST / national_player / _doc / 566
{
    "countryEn": "Croatia",
    "teamName": "快船",
    "birthDay": 858661200000,
    "country": "克罗地亚",
    "teamCityEn": "LA",
    "code": "ivica_zubac",
    "displayAffiliation": "Croatia",
    "displayName": "伊维察 祖巴茨妹妹",
    "schoolType": "",
    "teamConference": "⻄部",
    "teamConferenceEn": "Western",
    "weight": "108.9 公⽄",
    "teamCity": "洛杉矶",
    "playYear": 3,
    "jerseyNo": "40",
    "teamNameEn": "Clippers",
    "draft": 2016,
    "displayNameEn": "Ivica Zubac",
    "heightValue": 2.16,
    "birthDayStr": "1997-03-18",
    "position": "中锋",
    "age": 22,
    "playerId": "1627826"
}
 
发布了92 篇原创文章 · 获赞 3 · 访问量 5152

猜你喜欢

转载自blog.csdn.net/qq_22049773/article/details/103235497