目次
はじめに
Elastic Searchという分散型検索エンジンについて学習して、Nodes(ノード)とかShard(シャード)などの理解を整理するために纏めました。
公式
Node(ノード)とは
Elastic Searchを使い始めるときに必ず必要なものです。
どのNodeもHTTPリクエストの送信と変換ができるようになっています。
イメージでいえばサーバーですね。これがないと通信ができないです。
※どのNodeも標準で4つの機能を備えています。
名前 | 機能 |
---|---|
Master-eligible node | Elasticsearchの管理・制御を実施 |
Data node | データを格納 |
Ingest node | APIを受け付けるに特化 |
Machine learning node | 複数クラスタ構成で利用する |
Cluster(クラスタ)とは
複数のNodeを纏めたもの。
1つのClusterに必ず1つのNodeが存在します。
ElasticSearchは検索トラフィックの増加とデータ量や書き込み速度の分散をNodeを増やすことで対応することができます。
Shard(シャード)とは
Indexの中身を入れる場所です。 2種類あります。 |
名前 | 機能 |
---|---|---|
Primary Shard | 書き込み可能なShard | |
Replica Shard | 読み取り専用のShard |
デフォルトでは、5つのPrimary Shardとそれと対になるReplica Shardが生成されます。
(必ずセットで生成されます。)
Index(インデックスとは)
リレーショナルデータベースで言う所のDatabase(データベース)です。
ただ、データの中身自体はShardに保存されます。
見た目はIndexにあるように見えるけど・・・ってやつです。
Type(タイプ)とは
リレーショナルデータベースで言う所のtable(テーブル)です。
現在2020年1月時点の7.0のバージョンでは_docタイプしか認められていないので実質形骸化?
Document(ドキュメント)とは
リレーショナルデータベースで言う所のrow(ロー)です。
Fields(フィールズ)とは
リレーショナルデータベースで言う所のcolumn(カラム)です。
Documentのなかに入っているデータ単体という理解で一旦抑えました。
終わりに
一旦理解は抽象的ですが、なんとか進めそうです。
使ってみて例え話で説明できるくらいになりたい。