Why It Fits
選ぶ理由
- 高速な全文検索・あいまい検索
- ログ / 分析(ELK・Kibana)
- 分散でスケール
Product Profile
Elastic(Shay Banon) / 2010年登場
全文検索と分析に特化した分散検索エンジン。サイト内検索やログ分析(ELK)の定番で、大量データを高速に検索・集計する。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Deep Dive
Elasticsearch は、2010 年に Shay Banon が公開した分散型の検索エンジンです。開発元は Elastic で、ライセンスは Elastic License または SSPL が適用されます(バージョンや配布形態によって異なります)。
「結局なに?」を一言でいえば、全文検索と分析に特化したデータベースです。汎用の保存先というより、「探す・集計する」を大量データでも高速にこなすことを目的に作られています。
データは JSON ドキュメントとして格納し、複数ノードに分散して保持します。検索が速い理由は、内部で転置インデックス(どの語がどの文書にあるかを引く索引)を作っているためです。
得意なのは、表記ゆれを許容するあいまい検索や、ログ・イベントの集計です。膨大なテキストやログから条件に合うものを素早く見つけ、件数や傾向を集計する処理に強みがあります。
不得意なのは、唯一の主データストアとして使うことです。書き込み直後に必ず最新が読める強整合性は前提にしておらず、運用やメモリ・CPU などのリソースも比較的重めになります。
トランザクションや厳密な整合性が中心なら RDB、構造データの主保管なら RDB やドキュメント DB が向きます。Elasticsearch は、その上に「検索・分析の層」として組み合わせるのが定番です。
正本データは別 DB に置き、検索・集計用として Elasticsearch を併用する構成にすると役割が整理しやすくなります。
Implementation View
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
サイト内検索 / 全文検索
種別: 検索エンジン(全文検索) / クエリ: Query DSL(JSON) / ライセンス: Elastic License / SSPL
ログ / 分析(ELK・Kibana)
主データストアには不向き(検索用)
Best Fit