<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 索引別名和零停機時間 前面提到的重新索引過程中的問題是必須更新你的應用,來使用另一個索引名。索引別名正是用來解決這個問題的! 索引 _別名_ 就像一個快捷方式或軟連接,可以指向一個或多個索引,也可以給任何需要索引名的 API 使用。別名帶給我們極大的靈活性,允許我們做到: * 在一個運行的集群上無縫的從一個索引切換到另一個 * 給多個索引分類(例如,`last_three_months`) * 給索引的一個子集創建 `視圖` 我們以后會討論更多別名的使用場景。現在我們將介紹用它們怎么在零停機時間內從舊的索引切換到新的索引。 這里有兩種管理別名的途徑:`_alias` 用于單個操作,`_aliases` 用于原子化多個操作。 在這一章中,我們假設你的應用采用一個叫 `my_index` 的索引。而事實上,`my_index` 是一個指向當前真實索引的別名。真實的索引名將包含一個版本號:`my_index_v1`, `my_index_v2` 等等。 開始,我們創建一個索引 `my_index_v1`,然后將別名 `my_index` 指向它: ``` PUT /my_index_v1 <1> PUT /my_index_v1/_alias/my_index <2> ``` <!-- SENSE: 070_Index_Mgmt/55_Aliases.json --> <1> 創建索引 `my_index_v1`。 <2> 將別名 `my_index` 指向 `my_index_v1`。 你可以檢測這個別名指向哪個索引: ``` GET /*/_alias/my_index ``` <!-- SENSE: 070_Index_Mgmt/55_Aliases.json --> 或哪些別名指向這個索引: ``` GET /my_index_v1/_alias/* ``` <!-- SENSE: 070_Index_Mgmt/55_Aliases.json --> 兩者都將返回下列值: ``` { "my_index_v1" : { "aliases" : { "my_index" : { } } } } ``` 然后,我們決定修改索引中一個字段的映射。當然我們不能修改現存的映射,索引我們需要重新索引數據。首先,我們創建有新的映射的索引 `my_index_v2`。 ``` PUT /my_index_v2 { "mappings": { "my_type": { "properties": { "tags": { "type": "string", "index": "not_analyzed" } } } } } ``` <!-- SENSE: 070_Index_Mgmt/55_Aliases.json --> 然后我們從將數據從 `my_index_v1` 遷移到 `my_index_v2`,下面的過程在【重新索引】中描述過了。一旦我們認為數據已經被正確的索引了,我們就將別名指向新的索引。 別名可以指向多個索引,所以我們需要在新索引中添加別名的同時從舊索引中刪除它。這個操作需要原子化,所以我們需要用 `_aliases` 操作: ``` POST /_aliases { "actions": [ { "remove": { "index": "my_index_v1", "alias": "my_index" }}, { "add": { "index": "my_index_v2", "alias": "my_index" }} ] } ``` <!-- SENSE: 070_Index_Mgmt/55_Aliases.json --> 這樣,你的應用就從舊索引遷移到了新的,而沒有停機時間。 提示: 即使你認為現在的索引設計已經是完美的了,當你的應用在生產環境使用時,還是有可能在今后有一些改變的。 所以請做好準備:在應用中使用別名而不是索引。然后你就可以在任何時候重建索引。別名的開銷很小,應當廣泛使用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看