全4768文字

DXを推進するうえで、必要な情報(データ)に容易に到達できる環境作りは欠かせない。実現には高度な検索が必要であり、その手段として全文検索エンジンがある。検索・分析エンジン「Elasticsearch」はログ分析や全文検索など幅広い用途で使われる。

 DX(デジタルトランスフォーメーション)を推進するうえで、全文検索エンジンは欠かせないツールの1つです。必要な情報(データ)を適切に得るための環境作りに不可欠です。今回は全文検索エンジンの中で企業の人気が高い「Elasticsearch」について解説します。

Elasticsearchとは

 Elasticsearchは分散型で無料の検索・分析エンジンです。オランダのエラスティック(Elastic)を中心に開発が進められています。「Apache Lucene(ルシーン)」をベースに開発されたElasticsearchは2010年にリリースされ、その後人気のある検索エンジンとなりました。ログ分析や全文検索、セキュリティーインテリジェンス、ビジネス分析、リアルタイムデータ分析といった用途で使用されています。

 Elasticsearchは「Elastic Stack」と呼ぶプロダクト群の中の1つのサービスです。Elastic StackはElasticsearchのほか、Elasticsearchのデータを可視化する「Kibana」、Elasticsearchにデータをインジェスト(取り込み)する「Logstash」および「Beats」で構成します。データの収集・蓄積から可視化、分析までDXで必要となるサイクルを実現できます。

図 Elastic Stackの概要
図 Elastic Stackの概要
Elasticsearchは「Elastic Stack」の中核
[画像のクリックで拡大表示]

 Elasticsearchの利点は検索や集約処理が高速な点です。一般的なRDB(リレーショナルデータベース)ではデータが増えるに従って検索性能が劣化します。部分一致検索では特に顕著です。Elasticsearchはそのようなデータの増大に対しても高速な検索を維持できます。スケーラビリティーと可用性の高さも利点です。分散設計されており、容易にスケールアウトできます。

 高度な検索を容易に実現できる機能を網羅している点も重要です。全文検索はもちろん、ノーマライズ(大文字小文字、ひらがなカタカナなどの正規化)、類義語検索、形態素解析といった機能も備えます(詳細は後述)。こうした利点は、取り扱うデータの肥大化が進む時代にあって、「必要な情報(データ)に容易に到達できる」という目的にマッチしています。

多種多様なデータを扱える

 Elasticserachで扱えるデータはDBに保存されたデータだけでなく、アプリケーションやクラウドサービスのログ、「Microsoft Office」のファイルやPDF、Webサイトのコンテンツなど多種多様です。Elasticsearchを利用すれば、これら多種多様なデータを蓄積し、容易に検索できます。

図 Elasticsearchへのデータ投入
図 Elasticsearchへのデータ投入
多種多様なデータを扱える
[画像のクリックで拡大表示]

 各種データをElasticsearchに投入して蓄積する方法は、データソースによって様々です。例えばDBやログファイルからデータを投入するのであれば、Elastic Stackを構成するデータ処理パイプライン「Logstash」の利用が候補に挙げられます。

 Microsoft OfficeファイルやPDFであれば、どちらも「Apache Tika」を利用したオープンソースソフトウエア(OSS)である「Ingest Attachment Processor Plugin」や「FSCrawler」などが候補に挙がります。WebサイトのコンテンツであればWebクローラーを利用することになるでしょう。