The Definitive Guide から学ぶ Elasticsearch(Getting Started)

久しぶりのブログエントリです。年末年始休暇の時間を使って改めて Elasticsearch を学び直したいと思います。

概要

Elastic Stack はドキュメントが豊富です。Elastic Stack の各種プロダクトにドキュメントがあることはもちろん、プラグインやクライアントにもドキュメントが用意されていて更にうれしいのは各種バージョンでのドキュメントも残されています。つまり最新バージョンを使っていなくても使っているバージョンのドキュメントに切り替えて閲覧することができます。それらドキュメントの一つに The Definitive Guide というドキュメントがあります。過去に一回通しで読んだことがあるのですが、いまいち理解できずに読み進めたところがありますので改めてこのドキュメントを読み進めながら Elasticsearch の理解を深めたいと思います。このドキュメントはバージョン 2系で書かれていますが、Elasticsearch の基礎となる部分は変わっていないと思うので個人的には入門ドキュメントにピッタリだと思っています。ちなみに個人の見解も混じっているので間違っているところあったら是非ご指摘ください。

Getting Started

ここでは Elasticsearch の概要が説明されています。Elasticsearch は全文検索、Structured検索(そのまま構造化検索でいいのかな)、分析などの用途に利用できます。例えば、転置インデックスを扱う全文検索を行うことができ、JSON 形式のスキーマフリーにデータを扱うことができ、柔軟な検索、集計でデータの分析、予測などを行うことができます。

ユースケース

ここではいくつかの有名サービス、企業での Elasticsearch のユースケースを紹介されています。

  • Wikipedia
    あの大量の文書を Elasticsearch でストアしています。検索だけでなく、検索窓のサジェストや、検索結果のハイライトも Elasticsearch によって実現しています。

  • The Guardian
    イギリスの新聞社の The Guardian は読者の行動分析に Elasticsearch を利用しています。ログと SNS のデータから編集者に読者の反応をフィードバックしています。

  • Stack Overflow
    全文検索と位置情報と類似検索を使ってより関連する質問、回答の検索を実現しました。

  • GitHub
    GitHub にある 1,300億行のソースコードを検索します。(2系のドキュメントなので今は一体何行あるのか。。)

ここでは大企業、有名サービスの例として上記を上げていますが、スタートアップなどでの採用も多くなっています。

データベースだとダメ?

多くのシステムでは RDBMS にデータを蓄えています。RDBMS で蓄えているだけでデータを活用していないケースはよくあります。RDBMS には SQL がありますが、Elasticsearch と比較するとデータの集計、分析が得意ではありません。Elasticsearch にもデータを置くことで今まで難しかったデータ分析を行っていきましょう。