製品プロフィール

Elasticsearch

Elastic(Shay Banon) / 2010年登場

全文検索と分析に特化した分散検索エンジン。サイト内検索やログ分析(ELK)の定番で、大量データを高速に検索・集計する。

3つの要点
TL;DR
  1. 全文検索と分析に特化した分散検索エンジン。
  2. あいまい検索やログ集計を大量データでも高速に。
  3. サイト内検索やログ分析向け。主データは別 DB に。

基本情報

仕様と立ち位置

Elasticsearch のロゴ
製品・技術の概要Elasticsearch全文検索と分析に特化した分散検索エンジン。サイト内検索やログ分析(ELK)の定番で、大量データを高速に検索・集計する。
種別
検索エンジン全文検索)
クエリ
Query DSLJSON)
ライセンス
Elastic License / SSPL
登場
2010年
最大の強み
高速な全文検索あいまい検索ログ / 分析(ELK・Kibana)
代表的な用途
サイト内検索 / 全文検索ログ分析・可観測性(ELK) / 分析ダッシュボード

選定ガイド

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

採用に向く条件

選ぶ理由

  1. 高速な全文検索・あいまい検索
  2. ログ / 分析(ELK・Kibana)
  3. 分散でスケール

事前に確認する条件

考慮すべき点

  1. 主データストアには不向き(検索用)
  2. 運用・リソースが重め
  3. 強整合ではない

詳しい解説

もっと詳しく

どんな DB か

Elasticsearch は、2010 年に Shay Banon が公開した分散型の検索エンジンです。開発元は Elastic で、ライセンスは Elastic License または SSPL が適用されます(バージョンや配布形態によって異なります)。

「結局なに?」を一言でいえば、全文検索と分析に特化したデータベースです。汎用の保存先というより、「探す・集計する」を大量データでも高速にこなすことを目的に作られています。

横にスクロール

Elasticsearchの調整ノードが文書IDから主シャードへ経路制御し、解析、転置索引、translog、複製を経て書込みに応答し、refresh後に検索可能となりqueryとfetchの二段階で検索する流れ
索引登録は主シャードがmappingとanalyzerを適用し、転置索引バッファとtranslogへ記録して複製へ転送します。書込み成功、障害復旧可能、refresh後に検索可能、という時点は別です。検索は各シャードへfan-outして上位候補を集約するquery phaseと、本文を取得するfetch phaseに分かれ、失敗シャードや同期遅延を含めて結果を判断します。

データモデル・仕組み

データは JSON ドキュメントとして格納し、複数ノードに分散して保持します。検索が速い理由は、内部で転置インデックス(どの語がどの文書にあるかを引く索引)を作っているためです。

  • 文書を取り込む際に語を分割・索引化し、後から高速に語で引けるようにします。
  • データを複数のシャードに分けて分散・並列処理します。
  • 検索結果に関連度スコアを付けて、近い順に並べられます。

得意・不得意

得意なのは、表記ゆれを許容するあいまい検索や、ログ・イベントの集計です。膨大なテキストやログから条件に合うものを素早く見つけ、件数や傾向を集計する処理に強みがあります。

不得意なのは、唯一の主データストアとして使うことです。書き込み直後に必ず最新が読める強整合性は前提にしておらず、運用やメモリ・CPU などのリソースも比較的重めになります。

いつ選ぶか(他との違い)

トランザクションや厳密な整合性が中心なら RDB、構造データの主保管なら RDB やドキュメント DB が向きます。Elasticsearch は、その上に「検索・分析の層」として組み合わせるのが定番です。

  • サイト内検索や商品検索など、あいまい検索が要る場面。
  • ログ分析基盤(ELK:Elasticsearch + Logstash + Kibana など)での可視化。

正本データは別 DB に置き、検索・集計用として Elasticsearch を併用する構成にすると役割が整理しやすくなります。

実装・運用の視点

Elasticsearchを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

サイト内検索 / 全文検索

比較で見る軸

種別: 検索エンジン(全文検索) / クエリ: Query DSL(JSON) / ライセンス: Elastic License / SSPL

導入後に効く点

ログ / 分析(ELK・Kibana)

先に潰すリスク

主データストアには不向き(検索用)

数字・仕様の読み方
種別
検索エンジン(全文検索)
クエリ
Query DSL(JSON)
ライセンス
Elastic License / SSPL
登場
2010年

判断チェックリスト

  • 自社の用途が「サイト内検索 / 全文検索 / ログ分析・可観測性(ELK)」に近いか確認する。
  • 強みである「高速な全文検索・あいまい検索」が本当に評価軸になるか確認する。
  • 注意点の「主データストアには不向き(検索用)」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

サイト内検索 / 全文検索ログ分析・可観測性(ELK)分析ダッシュボード

向いている用途

こんな用途に向く

サイト内検索 / 全文検索ログ分析・可観測性(ELK)分析ダッシュボード
公式サイト