INDEX | RDBのDatabaseに相当。この単位でSHADE数が決まるので、更新頻度が違うものはINDEXを分ける |
シャード | インデックスを何分割するか?作成時のみしか指定できず |
TYPE | INDEXに格納されるドキュメントの型。テーブルみたいなもの |
DOCUMENT | RDBの1レコード |
FIELD | 列定義 |
CLUSTER | NODEの集合 |
NODE | ESの1プロセス。最小構成単位である |
シャードの数はノードの数に合わせておくと良いらしい。ノードが少ないのにシャードを増やしても早くならない。
RDB | Elasticsearch |
Databases | Indices |
Tables | Types |
Rows | Documents |
Fields | Columns |
シャードはノード数と同じにしておくと良いのだが、将来的にノードを増やすことで負荷分散することを考えているのであればノード数以上にシャードを設定しておくのもあり。
https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index
一つのINDEXでシャードの数が決まるので、スケールさせる前提であればINDEXを分ける。また親子関係がある場合は一つのINDEXにする必要がある。INDEX名を適当に決めるとINDEX TEMPLATEが適用できなくなってしまうので、きちんと命名規約を決めておくこと!