ログ解析等でよくElasticsearch+kibanaが使われているが、改めてElasticsearchとは?を簡単にまとめた。
概要
- Elastic社が開発している、スケーラビリティに優れた全文検索エンジン
- リアルタイムデータ分析、ログ解析、全文検索など様々な分析が可能になる
- ログ集約のLogstashやfluentd、可視化ツールのkibanaと一緒に使われることが多い
- 複数のデータベースを横断して検索することが、ごく当たり前の用途として提供されている
RDBの違い
RDB:
- データを安全に保管し、汎用的に利用するための機能が豊富
- データベースをドロップすることはなかなかない
- マスターとなるデータを半永久的に保管する
Elasticsearch:
- 検索のパフォーマンスとスケーラビリティが強い
- 時間間隔でインデックスを区切ったりすることがよくある
- 不要になったインデックスは捨てる
- 分析や検索用のデータを保管する
それぞれ呼び方の違い
RDB | Elasticsearch |
---|---|
データベース | インデックス |
テーブル | マッピングタイプ |
カラム(列) | フィールド |
レコード(行) | ドキュメント |
使い方の基礎
第4回 Elasticsearch 入門 検索の基本中の基本
- サーチAPIを利用して様々な検索を行う
- 検索やデータの投入、削除はJSON形式で指定することができる
- 本番環境の検索はエイリアス名を使う
- 複数のインデックスに同じ名前のエイリアスを定義することができる
- したがって、1つのエイリアスを指定するだけで複数のインデックスを検索できる
- ページング
- sizeとfromを使う
- size:1度の検索結果を取得する数をしている。デフォルトは10
- from:スキップする結果数を指定:デフォルトは0
検索のパワーをフル活用するなら
以下の知識が必要っぽい
- Mapping:フィールドの型や分析方法の設定
- Analysis:言語処理や正規化などのフィールドの値の加工について
- Query DSL:JSONフォーマットによる検索条件の組み立て