このトピックでは、Alibaba Cloud Elasticsearch で使用される基本的な概念と用語について説明します。

クラスター

Elasticsearch クラスターは、1 つ以上のノードで構成されます。 クラスターは、クラスター内のノードに対して複合インデックスと検索機能を提供します。 データの保存には、クラスター内のすべてのノードが使用されます。 各クラスターには一意の名前があります。 デフォルトのクラスター名は elasticsearch です。 ノードをクラスターに追加するには、クラスターの名前が必要なので、クラスター名は重要です。

異なる環境のクラスターは、異なる名前を使用するようにしてください。 そうしないと、間違ったクラスターにノードを追加する可能性があります。

ノード

ノードは、Elasticsearch クラスター内のサーバー上で実行されます。 ノードはデータの保存に使用され、クラスター内でインデックスの作成やクエリなどの操作をサポートします。 クラスターと同じように、各ノードには一意の名前があります。 デフォルトでは、ノードの起動時にランダムの UUID がノードの名前として割り当てられます。 ノードにカスタム名を割り当てることもできます。 ノード名は、管理作業に不可欠です。 ノードの名前に従って、サーバー上でどのノードを実行するのか決定する必要があります。

指定した名前のクラスターにノードを追加できます。 デフォルトでは、ノードは elasticsearch という名前のクラスターに追加されます。 これらのノードがネットワーク内で互いに検出可能であれば、ノードの起動後、elasticsearch という名前のクラスターが自動的に形成されます。

クラスター内のノード数は、制限がありません。 ネットワークで Elasticsearch ノードが実行されていない場合、ノードを起動した後、Elasticsearch という名前の単一ノードのクラスターが作成されます。

インデックス

インデックスは、同様の機能を持つドキュメントのセットです。 リレーショナル データベースのようなものです。 たとえば、顧客データ、商品カタログデータ、注文データをそれぞれ保存するインデックスを 3 つ作成できます。 通常、インデックスには名前を割り当てて識別します。 インデックス名は小文字でなければなりません。 インデックスをクエリ、更新、削除、またはインデックス内のドキュメントに追加する場合、インデックスの名前を指定する必要があります。

タイプ

タイプは、インデックスの論理クラスまたはパーティションです。 リレーショナルデータベース内のテーブルのようなものです。 インデックスには、ユーザーのタイプやブログのタイプなど、さまざまなタイプのドキュメントを保存できます。 1 つのインデックスに複数のタイプ作成することはできません。 Elasticsearch の将来のバージョンでは、この概念はなくなります。 詳細は、Elasticsearch 公式ドキュメントをご参照ください。

ドキュメント

ドキュメントは、インデックスを作成できる基本情報単位です。 リレーショナルデータベースのテーブルの行のようなものです。 たとえば、顧客や商品のドキュメントを作成できます。 ドキュメントは JSON オブジェクトです。 インデックスに保存するドキュメントの数は制限がありません。これらのドキュメントには、インデックスを作成する必要があります。

シャード

インデックスは複数のシャードに分割できます。 大きなインデックスをシャードに分割し、分割したシャードをノード間で分散すると、分散検索をサポートできます。 インデックスを作成する前に、インデックスのシャードの数を指定する必要があります。 インデックスの作成後、インデックスのシャード数を変更することはできません。

レプリカ

レプリカとは、インデックスのレプリカシャードを指します。 各インデックスは、複数のレプリカを持つことができます。 レプリカシャードを使用する利点は次のとおりです。
  • システムのフォールトトレランスが向上します。 ノードのプライマリシャードが破損するか失われた場合、関連するレプリカシャードからシャードを復元できます。
  • 検索効率が向上します。 レプリカシャード間のクエリの負荷が自動的に分散されます。

リカバリ

データリカバリ (またはデータ再分散) は、ノードがクラスターに追加される場合やクラスターから削除される場合、またはノードが障害からリカバリする場合に、データの整合性を保証するためにノードのシャードを再分散するプロセスです。

ゲートウェイ

ゲートウェイは、インデックスのスナップショットを保存するために使用されます。 デフォルトでは、Elasticsearch ノードはすべてのインデックスをメモリに保存します。 ノードのメモリがいっぱいになると、インデックスはローカルディスクに保存されます。 Elasticsearch クラスターを再起動すると、ゲートウェイに保存されているスナップショットからインデックスが復元されます。 スナップショットからインデックスを復元する方が、ローカルディスクからインデックスを読み取るよりも高速です。 Elasticsearch は、ローカルファイルシステム (デフォルト)、分散ファイルシステム、Hadoop Distributed File System (HDFS)、Alibaba Cloud Object Storage Service (OSS) など、複数のタイプのゲートウェイをサポートします。

discovery.zen

discovery.zen は、自動ノード検出メカニズムです。 Elasticsearch は、ブロードキャストしてノードを検出するピアツーピア (P2P) システムです。 ノードは、マルチキャストと P2P で相互に通信します。

トランスポート

トランスポートとは、Elasticsearch クラスターまたはクラスター内のノードがクライアントと通信するために使用される方法を指します。 デフォルトでは、TCP が使用されます。 プラグインを Elasticsearch に組み込むと、HTTP over JSON、Thrift、Servlet、Memcached、ZeroMQ など、他のトランスポートプロトコルを使用することもできます。