エラスティックサーチで複数のインデックスを指すインデックスのエイリアスを設定する方法



インデックスのエイリアスは、私たちにインデックスを制御する能力を与える弾性検索の強力な機能です.一つは、できるだけ多くのインデックスを作成し、正しいインデックスを指し示すためにエイリアスを使用したり、アプリケーションの必要性に応じてインデックス別名をすべてのインデックスに指すことができます.

シナリオ


あなたのアプリケーションのためにエラスティックサーチで働くとき、以下のシナリオが必要であるならば、想像してください

  • シナリオ1 :新しいクラスタに復元する必要があるインデックスのスナップショットを返しますが、新しいインデックスを作成します.時間が経過すると、新しいデータが新しく作成されたインデックスに蓄積され、スナップショットからデータを新しいインデックスと組み合わせる必要があることがわかりました.

  • シナリオ2 :特定のスキーマ変更や再インデキシングを必要とするインデックスがあります.ほとんどのダウンタイムを使用してインスタンスから検索することができるようにするには、新しいスキーマの変更と再インデックスデータを使用して新しいインデックスを設定することができます.
  • マルチインデックスエイリアシングの導入複数のインデックスを指す単一のインデックスのエイリアスを作成できます.つの原子操作で1つ以上のエイリアス動作を実行することができるFeltSearchからの終点があります.

    必要条件

  • 使用したいエイリアスがまだ使用されていない場合は、_alias/alias-name エンドポイントHEAD _alias/my-alias
  • それが404を返すならば、別名が利用可能であることを意味して、マルチインデックスエイリアシングをセットアップする際に使われることができます
  • それが200を返すならば、それは使用されていることを意味します、そして、あなたは別名を選ぶ必要があります
  • あなたのインデックスがあなたのクラスタ/インスタンスの中ですぐに利用可能であると確認してください.
  • ステップ

  • あなたの古いスナップショットが準備ができていることを確認してください.
  • スナップショットインデックスを復元するときに、インデックス名が競合を避けるために新しく作成されたものと異なることを確認します.
  • 古いスナップショット/クラスタからインデックスをクローンします
  • 指定したクラスタに次のPOST要求を実行します.
  • POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "new_index",
            "alias": "new_index_alias"
          }
        },
        {
          "add": {
            "index": "old_index",
            "alias": "new_index_alias"
          }
        }
      ]
    }
    

    しかし、待って、新しいデータを指定したい場合は、特定のインデックスに書き込まれますか?


    あなたは**is_write_index** 以下のようにペイロードのパラメータ
    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "new_index",
            "alias": "new_index_alias",
            "is_write_index": true
          }
        },
        {
          "add": {
            "index": "old_index",
            "alias": "new_index_alias"
          }
        }
      ]
    }
    
    ご覧のように、エラスティックサーチインスタンス内の複数のインデックスを指すインデックス別名を設定するのは、簡単です.
    エイリアスからデータを検索する場合は、単に次のように実行します.
    GET /new_index_alias/_search
    
    これは、2つのインデックス間でクエリに役立つnew_index and old_index .

    利益


  • ゼロダウンタイム:新しい変更を新しいインデックスをもたらす、それが準備ができているときに新しいインデックスにポイントエイリアス.古いインデックスを保持します.将来の参照やバックアップとして必要な場合.

  • 複数のインデックス:複数のインデックスを問い合わせることができますか?次に、複数のインデックスを指すエイリアスを作成します.
  • 資源

  • https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
  • https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-alias-exists.html