Elasticsearch えらすてぃっくさーち
Elasticsearch全文検索検索エンジンLuceneELKスタックログ分析
ElasticsearchってDBと何が違うの?
簡単に言うとこんな感じ!
ElasticsearchはGoogleみたいな「全文検索」が得意な検索エンジンだよ!普通のDBは「完全一致・部分一致」の検索が遅かったり、大量テキストの検索が苦手だけど、Elasticsearchは「関連度順」で結果を返す高速全文検索ができるんだ。ログ分析にもよく使われるよ。
Elasticsearchとは
Elasticsearch は、Apache Luceneをベースに構築された分散型全文検索エンジンです。HTTPベースのJSONインターフェースを持ち、大量のドキュメントを高速に検索・集計・分析できます。
2010年にShay Banonがリリースし、現在はElastic社が開発しています。ELKスタック(Elasticsearch・Logstash・Kibana) またはElastic Stackの中核として、ログ分析・セキュリティ監視・全文検索に広く使われています。
Elasticsearchの主な特徴
| 機能 | 内容 |
|---|---|
| 全文検索 | テキストを形態素解析してインデックス化、関連度スコアで順位付け |
| 分散スケール | データをシャードに分散し水平スケールアウト可能 |
| 集計(Aggregation) | ファセット検索・統計集計・ヒストグラム |
| リアルタイム更新 | ドキュメント追加後ほぼリアルタイムで検索可能 |
| REST API | JSONでシンプルに操作 |
| マルチテナント | インデックスで論理的に分離 |
ELKスタックの構成
ログ生成(アプリ・サーバー)
↓
Logstash / Filebeat(収集・変換)
↓
Elasticsearch(保存・インデックス化)
↓
Kibana(可視化・ダッシュボード)
歴史と背景
- 2004年:Shay BanonがLuceneベースのCompass開発
- 2010年:Elasticsearchとして公開
- 2012年:ELKスタックが登場、ログ分析のデファクトスタンダードに
- 現在:セキュリティ(SIEM)・オブザーバビリティ・コマース検索で広く採用
用途と向き不向き
| 向いている用途 | 向かない用途 |
|---|---|
| 全文検索・曖昧検索 | トランザクション(ACID保証が弱い) |
| ログ分析・集計 | 結合・集計の複雑なクエリ |
| リアルタイムダッシュボード | 正規化された構造データ管理 |
関連用語
- 全文検索(Full Text Search) — Elasticsearchの中核機能
- ELKスタック — Elasticsearchを使ったログ分析スタック
- NoSQL — ElasticsearchはNoSQLの一種
- Redis — キャッシュとして組み合わせることが多い
- データベースオブザーバビリティ — Elasticsearchのクラスター監視