Elasticsearch メモ

■ElasticSearchとKibana
http://qiita.com/awakia/items/41e0d6c1d7f23d4b51bb

Kibana連携の際は、単に検索というより、可視化したいデータを高速にフィルタリングして集計する用途で使われている。

 

■メモ

Elasticsearchはデフォルトで文字列を要素解析して保存する。これによって部分一致検
索ができるようになるのだが、完全一致検索が難しくなる。

Elasticsearchはスキーマレスでインデックスが増えたら勝手にデータ型とかを判別して
くれるが、フィールドのデータ型や、要素解析などを指定することもできる。そのために
はMapping Templateを使う。

 

マッピング

http://qiita.com/windows222/items/1cc5c49d58c2c59bfa81

Elasticsearchのmappingとは、DBでいうところのスキーマ(テーブル型)を指す。

Elasticsearchは、インデックスを作成しなくても、最初に登録されたデータの型を元に
型を判断するDynamic mappingという機能を持っている為、必ずしもインデックスを作成
する必要はない、しかし、インデックスを作らない場合、後から異なる型のデータを入れ
ることができてしまう。異なる型のデータが登録されると、Kibana等で解析するときに
Warningが出たりしてうまく解析ができなくなっていまうことなどがあるため、インデッ
クスはできるだけ作成することをおすすめする。

 

■型
http://qiita.com/windows222/items/1cc5c49d58c2c59bfa81

String型を使えばどのようなデータ型のデータも登録することができるが、すべてそうし
てしまうとKibanaで解析ができない。(Kibanaを利用するには、インデックス内に1つ以
上の日付型のレコードが必要)また、String型では値の集計処理などができない為、デー
タの集計要に応じて型を決める必要がある。


■Mapping Templateを使う
http://qiita.com/harukasan/items/4ec517d8d96f557367e1

Elasticsearchはデフォルトで文字列を要素解析して保存する。これによって部分一致検
索ができるようになるのだが、完全一致検索が難しくなる。

Elasticsearchはスキーマレスでインデックスが増えたら勝手にデータ型とかを判別して
くれるが、フィールドのデータ型や、要素解析などを指定することもできる。そのために
はMapping Templateを使う。

できるだけデータを挿入するときにデータ型には気を遣うべきだと思っている。

 

Amazon Elasticsearch Serviceの制限事項
ここまでメリットばかりで選択しない理由がないのではないか、となりますが、制限事項もあります。
・Elasticsearchのバージョン選択
VPC対応
プラグインのインストー
Dynamic Script
ユーザー辞書
全てのElasticsearch API
TCP Transport Support