全4972文字
PR

 DX(デジタルトランスフォーメーション)を推進するうえで重要なことの1つに、「必要な情報(データ)に容易に到達できる」ことが挙げられます。実現には高度な検索が必要であり、その手段として全文検索エンジンがあります。今回は、全文検索エンジンの中で人気のある「Elasticsearch」について解説します。後半では主要クラウドにおけるElasticsearchのマネージドサービスについても説明します。

Elasticsearchとは

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

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

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

Elasticsearchの利点

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

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

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

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

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

 各種データをElasticsearchに投入し蓄積する方法は、データソースによって様々です。例えばDBやログファイルからデータを投入するのであれば、同じくElastic Stackの1つでオープンソースソフトウエア(OSS)のデータ処理パイプラインである「Logstash」が第一候補に挙げられます。Microsoft OfficeファイルやPDFであれば、どちらも「Apache Tika」を利用したOSSである「Ingest Attachment Processor Plugin」や「FSCrawler」などが候補に挙がります。WebサイトのコンテンツであればWebクローラーを利用することになるでしょう。