国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ES實戰(zhàn)】索引別名的使用說明

這篇具有很好參考價值的文章主要介紹了【ES實戰(zhàn)】索引別名的使用說明。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

索引別名

  1. 索引別名可以通過API的方式進行操作
  2. 一個索引別名可以映射到一個或一個以上的索引
  3. 索引名和索引別名不能重復,在集群中都是唯一的
  4. 別名可以與過濾器結(jié)合使用
  5. 一個索引可以擁有多個別名
  6. 只映射到一個索引的索引別名默認可以寫入。目前有特性,當別名關(guān)聯(lián)到多個索引的時候,可以通過配置別名的寫入索引,來通過別名寫入,否則無法通過別名進行寫入操作,但是非日志類的索引不建議使用。

Elasticsearch 有一些操作索引別名的APIs,可以為索引設(shè)計索引別名。索引別名API允許用一個名字來別名一個索引,所有的API都會自動將別名轉(zhuǎn)換為實際的索引名稱。一個別名支持被映射到一個以上的索引,當指定它時,別名將自動展開到被別名的索引。一個別名也可以與一個過濾器相關(guān)聯(lián),該過濾器將在搜索時自動應(yīng)用,并路由值。一個別名不能與一個索引有相同的名稱。

下面是一個將別名alias1與索引test1關(guān)聯(lián)的例子:

PUT gudong20230629001

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "gudong20230629001", "alias" : "gudong" } }
    ]
}

GET gudong20230629001

{
    "gudong20230629001": {
        "aliases": {
            "gudong": {}
        },
        "mappings": {},
        "settings": {
            "index": {
                "creation_date": "1688021916053",
                "number_of_shards": "5",
                "number_of_replicas": "1",
                "uuid": "o_Q5UdbPRWy4w_E9QJS9PA",
                "version": {
                    "created": "6070299"
                },
                "provided_name": "gudong20230629001"
            }
        }
    }
}

刪除同樣的索引別名

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "gudong20230629001", "alias" : "gudong" } }
    ]
}

GET gudong20230629001

{
    "gudong20230629001": {
        "aliases": {},
        "mappings": {},
        "settings": {
            "index": {
                "creation_date": "1688021916053",
                "number_of_shards": "5",
                "number_of_replicas": "1",
                "uuid": "o_Q5UdbPRWy4w_E9QJS9PA",
                "version": {
                    "created": "6070299"
                },
                "provided_name": "gudong20230629001"
            }
        }
    }
}

重命名一個別名是一個簡單的remove然后add操作,在同一個API中。這個操作是原子的,不需要擔心短時間內(nèi)別名不指向索引的問題:

在一次api請求的actions是什么樣的原子原子性,gudong20230629002索引實際上不存在,請求直接異常退出。

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "gudong20230629001", "alias" : "gudong" } },
        { "add" : { "index" : "gudong20230629001", "alias" : "gudong" } }
    ]
}

下例子,請求成功結(jié)束,雖然gudong20230629001上并沒有別名gudong,但是有remove操作沒有影響add操作。

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "gudong20230629001", "alias" : "gudong" } },
        { "add" : { "index" : "gudong20230629001", "alias" : "gudong" } }
    ]
}

在一個API中一次為一個索引別名關(guān)聯(lián)多個索引的寫法有:

  1. 將一個別名與一個以上的索引相關(guān)聯(lián),只需要幾個 add動作:
POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "gudong20230629001", "alias" : "gudong" } },
        { "add" : { "index" : "gudong20230629002", "alias" : "gudong" } }
    ]
}
  1. 可以用indices數(shù)組語法為一個動作指定多個索引:
POST /_aliases
{
    "actions" : [
        { "add" : { "indices" : ["gudong20230629001", "gudong20230629002"], "alias" : "gudong" } }
    ]
}
  1. glob模式(通配符模式)也可以用來將一個別名與多個具有共同名稱的索引聯(lián)系起

    在計算機編程中,特別是在類似Unix的環(huán)境中,術(shù)語globbing有時被用來指基于通配符的模式匹配。名詞 "glob "用來指代一個特定的模式,例如 “使用glob *.log來匹配所有這些日志文件”。它的符號比正則表達式更簡單。

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "gudong20230629*", "alias" : "gudong" } }
    ]
}

glob模式別名是對某一時刻,集群上滿足條件的索引映射生效,不會隨著匹配該模式的新索引的添加/刪除而自動更新。

也可以在一次操作中把一個索引和一個別名互換:

索引名稱和別名名稱 不是不能重名嗎?這方式可以跳過驗證?這里的actions里面的add和remove_index是原子的。如果只add,則會報錯。

PUT gudong20230629001     
PUT gudong20230629002   
POST /_aliases
{
    "actions" : [
        { "add":  { "index": "gudong20230629002", "alias": "gudong20230629001" } },
        { "remove_index": { "index": "gudong20230629001" } }  
    ]
}

要在一個動作中指定多個別名,也存在相應(yīng)的aliases數(shù)組語法。

帶有過濾器的別名

帶有過濾器的別名提供了一種簡單的方法來創(chuàng)建同一索引的不同 “視圖”。過濾器可以使用Query DSL來定義,并應(yīng)用于所有的搜索、計數(shù)、通過查詢刪除和更多類似的操作,都有這個別名。

要創(chuàng)建一個過濾的別名,首先我們需要確保這些字段已經(jīng)存在于mappings中:

PUT /test1
{
  "mappings": {
    "_doc": {
      "properties": {
        "user" : {
          "type": "keyword"
        }
      }
    }
  }
}

現(xiàn)在我們可以創(chuàng)建一個別名,在字段user上使用一個過濾器:

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "test1",
                 "alias" : "alias2",
                 "filter" : { "term" : { "user" : "donny" } }
            }
        }
    ]
}
Routing

可以將路由值與別名相關(guān)聯(lián)。這個功能可以和過濾別名一起使用,以避免不必要的分片操作。

下面的命令創(chuàng)建了一個新的別名alias1,指向索引test。在alias1被創(chuàng)建后,所有使用這個別名的操作都會被自動修改為使用1值進行路由:

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "test",
                 "alias" : "alias1",
                 "routing" : "1"
            }
        }
    ]
}

也可以為搜索和索引操作指定不同的路由值:

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "test",
                 "alias" : "alias2",
                 "search_routing" : "1,2",
                 "index_routing" : "2"
            }
        }
    ]
}

如上例所示,搜索路由可以包含幾個用逗號分隔的值。索引路由只能包含一個單一的值。

如果一個使用路由別名的搜索操作也有一個路由參數(shù),那么將使用搜索別名路由和參數(shù)中指定的路由的交集。例如,下面的命令將使用 "2 "作為路由值:

GET /alias2/_search?q=user:kimchy&routing=2,3
Write Index

我們可以將別名所指向的索引作為寫索引。當被指定時,所有針對指向多個索引的別名的索引和更新請求將試圖解析到作為寫索引的那個索引。每個別名在同一時間只能有一個索引被指定為寫入索引。如果沒有指定寫索引,并且有多個索引被別名引用,那么將不允許寫。

可以使用別名API和索引創(chuàng)建API來指定一個與別名相關(guān)的索引作為寫索引。

設(shè)置一個索引作為別名的寫入索引也會影響到在Rollover過程中對該別名的操作。

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "test",
                 "alias" : "alias1",
                 "is_write_index" : true
            }
        },
        {
            "add" : {
                 "index" : "test2",
                 "alias" : "alias1"
            }
        }
    ]
}

在這個例子中,我們將別名alias1testtest2相關(guān)聯(lián),其中test將是被選擇寫入的索引。

PUT /alias1/_doc/1
{
    "content": "Test Content"
}

被索引到/alias1/_doc/1的新文件將被當作/test/_doc/1來索引。

GET /test/_doc/1

要交換哪個索引是一個別名的寫入索引,可以利用Aliases API來做一個原子交換。這種交換不依賴于動作的順序。

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "test",
                 "alias" : "alias1",
                 "is_write_index" : false
            }
        }, {
            "add" : {
                 "index" : "test2",
                 "alias" : "alias1",
                 "is_write_index" : true
            }
        }
    ]
}

如果別名沒有為一個索引明確設(shè)置is_write_index: true,并且只引用了一個索引,那么這個被引用的索引就會表現(xiàn)得好像它是寫入索引,直到引用了另外一個索引。在這一點上,將沒有寫入索引,寫入將被拒絕。

REST單一添加一個別名

也可以用REST端點添加一個別名

PUT /{index}/_alias/{name}
參數(shù) 解釋
index 別名所指的索引. 可以是以下任一一個 `*
name 別名的名稱。必填項。
routing 可選項,路由值
filter 可選項,過濾器

你也可以使用復數(shù)的_aliases。

示例:
  • 增加一個基礎(chǔ)別名

    PUT /logs_201305/_alias/2013

  • 增加一個帶過濾器的別名

    首先創(chuàng)建索引并為user_id字段添加一個映射:

    PUT /users
    {
        "mappings" : {
            "_doc" : {
                "properties" : {
                    "user_id" : {"type" : "integer"}
                }
            }
        }
    }
    

    然后為一個特定的用戶添加別名:

    PUT /users/_alias/user_12
    {
        "routing" : "12",
        "filter" : {
            "term" : {
                "user_id" : 12
            }
        }
    }
    

索引創(chuàng)建是增加別名

別名也可以在索引創(chuàng)建期間指定:

PUT /logs_20162801
{
    "mappings" : {
        "_doc" : {
            "properties" : {
                "year" : {"type" : "integer"}
            }
        }
    },
    "aliases" : {
        "current_day" : {},
        "2016" : {
            "filter" : {
                "term" : {"year" : 2016 }
            }
        }
    }
}

刪除別名

刪除別名的REST endpoint 是: /{index}/_alias/{name}

路徑參數(shù) 備注
index 別名所指的索引。`*
name 別名的名稱。`*

或者你可以使用復數(shù)的_aliases。例子:

DELETE /logs_20162801/_alias/current_day

檢索現(xiàn)有別名

獲取索引別名API允許通過別名名稱和索引名稱進行過濾。這個api重定向到主節(jié)點并獲取所請求的索引別名,如果有的話。這個api只對找到的索引別名進行序列化。

參數(shù)名 說明
index 要獲取別名的索引名稱。通過通配符支持部分名稱,也可以指定多個索引名稱,用逗號分隔。也可以使用一個索引的別名。
alias 響應(yīng)中要返回的別名的名稱。和index選項一樣,這個選項支持通配符和指定多個用逗號隔開的別名的選項。
ignore_unavailable 如果指定的索引名稱不存在,該怎么做。如果設(shè)置為true,那么這些索引將被忽略。

REST的端點地址: /{index}/_alias/{alias}.

示例:

查詢索引logs_20162801下的所有別名:

GET /logs_20162801/_alias/*

Response:

{
 "logs_20162801" : {
   "aliases" : {
     "2016" : {
       "filter" : {
         "term" : {
           "year" : 2016
         }
       }
     }
   }
 }
}

在任何索引中具有2016年名稱的所有別名:

GET /_alias/2016

Response:

{
  "logs_20162801" : {
    "aliases" : {
      "2016" : {
        "filter" : {
          "term" : {
            "year" : 2016
          }
        }
      }
    }
  }
}

任何索引中以20開頭的所有別名:

GET /_alias/20*

Response:文章來源地址http://www.zghlxwxcb.cn/news/detail-622647.html

{
  "logs_20162801" : {
    "aliases" : {
      "2016" : {
        "filter" : {
          "term" : {
            "year" : 2016
          }
        }
      }
    }
  }
}

到了這里,關(guān)于【ES實戰(zhàn)】索引別名的使用說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Elasticsearch 索引管理:使用別名來修改字段類型

    在 Elasticsearch 中,一個常見的問題是如何修改已存在的索引的字段類型。這是一個棘手的問題,因為 Elasticsearch 本身不允許直接修改字段類型。如果刪除現(xiàn)有索引,重新建索引的話則會導致數(shù)據(jù)丟失。有一個方法是使用別名索引,當需要調(diào)整索引時可以先新建一個索引,把數(shù)

    2024年02月03日
    瀏覽(31)
  • Elasticsearch常用接口使用說明以及postman調(diào)用調(diào)試

    Elasticsearch常用接口使用說明以及postman調(diào)用調(diào)試

    接口url:http://xxxx:9200/_cat ? http://xxxx:9200/_cat/indices?v ? http://xxxx:9200/test-20230526?pretty 返回值 { ???? \\\"acknowledged\\\" :? true , ???? \\\"shards_acknowledged\\\" :? true , ???? \\\"index\\\" :? \\\"test-20230526\\\" } ? http://xxxx:9200/seatunnel-20230526/_search?q=*pretty ? http://xxxx:9200/_bulk 類型:POST Header: Content-Type ?

    2024年02月07日
    瀏覽(22)
  • (十)ElasticSearch高級使用【別名,重建索引,refresh操作,高亮查詢,查詢建議】

    在開發(fā)中,隨著業(yè)務(wù)需求的迭代,較?的業(yè)務(wù)邏輯就要?臨更新甚?是重構(gòu),?對于es來說,為了 適應(yīng)新的業(yè)務(wù)邏輯,可能就要對原有的索引做?些修改,?如對某些字段做調(diào)整,甚?是重建索 引。?做這些操作的時候,可能會對業(yè)務(wù)造成影響,甚?是停機調(diào)整等問題。由此

    2024年02月02日
    瀏覽(97)
  • 深度學習競賽進階技巧 - BLIP使用說明與實戰(zhàn)

    深度學習競賽進階技巧 - BLIP使用說明與實戰(zhàn)

    BLIP-2: Scalable Pre-training of Multimodal Foundation Models for the World’s First Open-source Multimodal Chatbot 由于大規(guī)模模型的端到端的訓練,視覺與語言的預訓練模型的成本越來越高。本文提出了BLIP-2,這是一種通用的有效的預訓練策略,它從現(xiàn)成的冷凍預訓練圖像編碼器與大型的語言模型中

    2024年02月01日
    瀏覽(17)
  • ES索引別名

    注:以下操作是在Kibana的“開發(fā)工具”中完成,既然了解elasticsearch就默認大家會“elasticsearch的界面”Kibana了 效果:相當于給索引名稱取了一個小名,叫小名叫大名索引都會答應(yīng)的

    2024年02月12日
    瀏覽(15)
  • ElasticSearch 實戰(zhàn):ES查詢索引文檔的6種方法

    在Elasticsearch中,查詢索引文檔的方法多種多樣,這里列舉了6種常見的查詢方法,其中包括: 簡單查詢(String Query) 這是最基本的全文搜索,只需在URL后面附加查詢字符串即可。例如,對索引 my_index 中的所有文檔執(zhí)行模糊匹配查詢: Match Query 類似于簡單查詢,但提供了更多的

    2024年04月12日
    瀏覽(20)
  • Elasticsearch 別名:靈活索引管理的利器

    在現(xiàn)代的大數(shù)據(jù)應(yīng)用中,Elasticsearch 以其卓越的全文搜索能力和分布式特性,成為了許多企業(yè)和開發(fā)者的首選數(shù)據(jù)存儲和查詢引擎。在Elasticsearch 的眾多功能中,別名(Alias)是一個相對簡單但非常實用的特性。通過別名,我們可以更加靈活地管理索引,實現(xiàn)無縫的版本控制、

    2024年02月22日
    瀏覽(26)
  • 【Elastic (ELK) Stack 實戰(zhàn)教程】11、使用 ElastAlert 實現(xiàn) ES 釘釘群日志告警

    【Elastic (ELK) Stack 實戰(zhàn)教程】11、使用 ElastAlert 實現(xiàn) ES 釘釘群日志告警

    目錄 一、ElastAlert 概述 二、安裝 ElastAlert 2.1?安裝依賴 2.2?安裝 Python 環(huán)境 2.3?安裝 ElastAlert 2.4?ElastAlert 配置文件 2.5?創(chuàng)建 ElastAlert 索引 2.6 測試告警配置是否正常 三、ElastAlert 集成釘釘 3.1 下載 ElastAlert 釘釘報警插件 3.2 創(chuàng)建釘釘機器人 3.3 請求 nginx 頻繁出現(xiàn) 401 場景 3.3.1 配

    2023年04月23日
    瀏覽(75)
  • ES 10 - 如何使用Elasticsearch的索引模板(index template)

    本文轉(zhuǎn)載自:ES 10 - 如何使用Elasticsearch的索引模板(index template) - 瘦風 - 博客園 索引模板: 就是把已經(jīng)創(chuàng)建好的某個索引的參數(shù)設(shè)置(settings)和索引映射(mapping)保存下來作為模板, 在創(chuàng)建新索引時, 指定要使用的模板名, 就可以直接重用已經(jīng)定義好的模板中的設(shè)置和映射. (1) sett

    2024年02月15日
    瀏覽(21)
  • [elastic 8.x]java客戶端連接elasticsearch與操作索引與文檔

    為了方便演示,我關(guān)閉了elasticsearch的安全驗證,帶安全驗證的初始化方式將在最后專門介紹 其中,HotelDoc是一個實體類 帶安全驗證的連接有點復雜,將下列代碼中CA證書的位置改為實際所在的位置就行了。 password為elastic的密碼,可以在我的另一篇文章中查看密碼的重置方式

    2024年04月11日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包