検索エンジン・全文検索

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 APIJSONでシンプルに操作
マルチテナントインデックスで論理的に分離

ELKスタックの構成

ログ生成(アプリ・サーバー)

Logstash / Filebeat(収集・変換)

Elasticsearch(保存・インデックス化)

Kibana(可視化・ダッシュボード)

歴史と背景

  • 2004年:Shay BanonがLuceneベースのCompass開発
  • 2010年:Elasticsearchとして公開
  • 2012年:ELKスタックが登場、ログ分析のデファクトスタンダードに
  • 現在:セキュリティ(SIEM)・オブザーバビリティ・コマース検索で広く採用

用途と向き不向き

向いている用途向かない用途
全文検索・曖昧検索トランザクション(ACID保証が弱い)
ログ分析・集計結合・集計の複雑なクエリ
リアルタイムダッシュボード正規化された構造データ管理

関連用語