ElasticSearchノート01-データ
2641 ワード
1オブジェクトの保存方法
オブジェクト(object)は、メモリに記録されたデータ構造の言語関連です.ネットワーク間で送信したり、保存したりするためには、標準的なフォーマットが必要です.JSON(JavaScript Object Notition)は、オブジェクトをテキストで表す読み取り可能な方法です.NoSQLの世界でのデータ交換の事実上の基準となっています.オブジェクトがJSONにシーケンス化されると、JSONドキュメント(JSON document)となります.
Elasticsearchは、分散ドキュメントストレージエンジンです.複雑なデータ構造であるシーケンス化されたJSONドキュメントをリアルタイムで格納して取得できます.すなわち、ドキュメントがElasticsearchに格納されると、クラスタの任意のノードで取得できます.
2検索原理-逆インデックス
Elasticsearchでは、各フィールドのデータはデフォルトでインデックスされます.すなわち、各フィールドには、高速取得のための逆インデックスが専用にあります.また、他のデータベースとは異なり、同じクエリーでこれらの逆インデックスをすべて利用して、驚くべきスピードで結果を返すことができます.
3リレーショナル・データベースとの対応
データベース->テーブル->行->列
リレーショナル・データベースdatabase->table->record->columns
elastic index -> type -> document -> fields
1ドキュメント
Elasticsearchでは、ドキュメント(document)という用語に特別な意味があります.特に、最上位構造またはルートオブジェクト(root object)がシーケンス化されたJSONデータ(一意のIDで識別され、Elasticsearchに格納される)を指す.
ドキュメントメタデータ
1つのドキュメントにはデータのみがありません.ドキュメントに関するメタデータ(metadata)も含まれています.必要な3つのメタデータノードは、次のとおりです.
ノード
説明
ドキュメントの保存場所
ドキュメントが表すオブジェクトのクラス
ドキュメントのユニークなID
2インデックス
ヒント:
実際、私たちのデータはスライス(shards)に格納され、インデックスは1つ以上のスライスをグループ化する論理空間にすぎません.しかし、これはいくつかの内部の詳細にすぎません.私たちのプログラムは完全にスライスに関心を持っていません.私たちのプログラムでは、ドキュメントはインデックス(index)に格納されます.残りの詳細はElasticsearchが関心を持っている.
インデックス名を選択するだけです.この名前はすべて小文字でなければなりません.下線で始まることはできません.カンマを含めることはできません.
Esインデックスには2つの意味があります
名詞の場合、リレーショナル・データベースのデータベースdatabaseと理解できます
動詞を作るとき、例えばドキュメントをインデックスすると、insert操作が理解できます.
3タイプ
リレーショナル・データベースでは、同じ構造を持つため、同じクラスのオブジェクトをテーブルに格納することがよくあります.同様に、Elasticsearchでは、データ構造も同じであるため、同じタイプ(type)のドキュメントを使用して同じ「物事」を表します.
各タイプ(type)には、従来のデータベース・テーブルのカラムと同様に、独自のマッピングまたは構造定義があります.すべてのタイプのドキュメントは同じインデックスの下に保存されますが、タイプのマッピング(mapping)はElasticsearchに異なるドキュメントがどのようにインデックスされるかを教えます.マッピングの定義と管理方法については、「マッピング」章で説明しますが、Elasticsearchに依存してデータ構造を自動的に処理します.
4メタデータ
5その他のメタデータ
他にもメタデータがありますが、「マッピング」の章で検討します.上記の要素を使用すると、Elasticsearchにドキュメントを格納し、IDで検索することができます.つまり、Elasticsearchをドキュメントメモリとして使用します.
オブジェクト(object)は、メモリに記録されたデータ構造の言語関連です.ネットワーク間で送信したり、保存したりするためには、標準的なフォーマットが必要です.JSON(JavaScript Object Notition)は、オブジェクトをテキストで表す読み取り可能な方法です.NoSQLの世界でのデータ交換の事実上の基準となっています.オブジェクトがJSONにシーケンス化されると、JSONドキュメント(JSON document)となります.
Elasticsearchは、分散ドキュメントストレージエンジンです.複雑なデータ構造であるシーケンス化されたJSONドキュメントをリアルタイムで格納して取得できます.すなわち、ドキュメントがElasticsearchに格納されると、クラスタの任意のノードで取得できます.
2検索原理-逆インデックス
Elasticsearchでは、各フィールドのデータはデフォルトでインデックスされます.すなわち、各フィールドには、高速取得のための逆インデックスが専用にあります.また、他のデータベースとは異なり、同じクエリーでこれらの逆インデックスをすべて利用して、驚くべきスピードで結果を返すことができます.
3リレーショナル・データベースとの対応
データベース->テーブル->行->列
リレーショナル・データベースdatabase->table->record->columns
elastic index -> type -> document -> fields
1ドキュメント
Elasticsearchでは、ドキュメント(document)という用語に特別な意味があります.特に、最上位構造またはルートオブジェクト(root object)がシーケンス化されたJSONデータ(一意のIDで識別され、Elasticsearchに格納される)を指す.
ドキュメントメタデータ
1つのドキュメントにはデータのみがありません.ドキュメントに関するメタデータ(metadata)も含まれています.必要な3つのメタデータノードは、次のとおりです.
ノード
説明
_index
ドキュメントの保存場所
_type
ドキュメントが表すオブジェクトのクラス
_id
ドキュメントのユニークなID
2インデックス
_index
インデックス(index)は、リレーショナル・データベースの「データベース」に似ています.インデックスに関連付けられたデータを格納する場所です.ヒント:
実際、私たちのデータはスライス(shards)に格納され、インデックスは1つ以上のスライスをグループ化する論理空間にすぎません.しかし、これはいくつかの内部の詳細にすぎません.私たちのプログラムは完全にスライスに関心を持っていません.私たちのプログラムでは、ドキュメントはインデックス(index)に格納されます.残りの詳細はElasticsearchが関心を持っている.
インデックス名を選択するだけです.この名前はすべて小文字でなければなりません.下線で始まることはできません.カンマを含めることはできません.
website
をインデックス名として使用します.Esインデックスには2つの意味があります
名詞の場合、リレーショナル・データベースのデータベースdatabaseと理解できます
動詞を作るとき、例えばドキュメントをインデックスすると、insert操作が理解できます.
3タイプ
_type
アプリケーションでは、ユーザー、ブログ、コメント、メールなど、オブジェクトを使用して「物事」を表します.各オブジェクトは、属性またはオブジェクトに関連付けられたデータを定義するクラス(class)に属します.user
クラスのオブジェクトには、名前、性別、年齢、およびEmailアドレスが含まれる場合があります.リレーショナル・データベースでは、同じ構造を持つため、同じクラスのオブジェクトをテーブルに格納することがよくあります.同様に、Elasticsearchでは、データ構造も同じであるため、同じタイプ(type)のドキュメントを使用して同じ「物事」を表します.
各タイプ(type)には、従来のデータベース・テーブルのカラムと同様に、独自のマッピングまたは構造定義があります.すべてのタイプのドキュメントは同じインデックスの下に保存されますが、タイプのマッピング(mapping)はElasticsearchに異なるドキュメントがどのようにインデックスされるかを教えます.マッピングの定義と管理方法については、「マッピング」章で説明しますが、Elasticsearchに依存してデータ構造を自動的に処理します.
_type
の名前は、大文字または小文字であってもよく、下線またはカンマは含まれません.タイプ名としてblog
を使用します.4メタデータ
_id
idは、_index
および_type
と組み合わせた文字列にすぎず、Elasticsearchでドキュメントを一意に識別することができる.ドキュメントを作成すると、_id
をカスタマイズしたり、Elasticsearchで自動的に生成したりすることができます.5その他のメタデータ
他にもメタデータがありますが、「マッピング」の章で検討します.上記の要素を使用すると、Elasticsearchにドキュメントを格納し、IDで検索することができます.つまり、Elasticsearchをドキュメントメモリとして使用します.