Elasticsearch入門:特徴編

こんにちは、てぃさんです。

システム開発をする中で、Elasticsearchを導入したシステムの開発はしているが、何をするためのものなのか、あまり分からない方というのも少なくないのではないでしょうか。

どちらかというと役割的にはインフラ部分に近いようなこともあり、既に構築されているため機能を利用しているだけということもあると思います。

今回は、Elasticseach入門編ということでElasticseachの基本をまとめ、Elasticseachの基礎を理解しながらアーキテクト設計時に活かせるよう記事にします。

目次

Elasticsearchとは?

Elasticsearchの概要

Elasticsearchは分散型検索および分析エンジンで、以前はOSS(オープンソースソフトウェア)であったが、現在はElastic社が中心となって開発を進めており、2021年にライセンスの変更がありOSSではなくなりました。

Elastic社は2012年に設立されたソフトウェア開発会社で、ことの始まりは、現在のElastic社CTOシャイ・バノンの奥さんが料理専門学校に入学して、それから奥さんが持ち帰るレシピが増えていくのを見て、検索エンジンを作ったそうです。

2010年に初めてのバージョンがリリースされました。

機能の特徴

最も特徴的な高速な検索および分析にありますが、Elasticseachの特徴としてあげられるものとなります。

①全文検索

「全文検索」とは商品説明やログなど大量にあるドキュメントデータの中から指定したキーワードを含むデータを検索することです。

一見単純そうなことに見える全文検索で、MySQLなどに用意されているFULLTEXT INDEXでも実現できることはありますが、データ量が多くなった場合はElasticsearchの方が高速に全文検索することができます。

件数が少ないことがわかっている場合かつ元々DBを利用する場合は、MySQLや他のDBに備わっている全文検索機能を利用することで、システム構成がシンプルになりますのでシステム要件を見て判断しましょう。

②高速検索処理

Apaceh Luceneベースに開発されていて、全文検索に優れた性能を発揮する特徴があります。

RDBの一般的な列形式のデータではなく、JSONドキュメントとしてシリアル化された複雑なデータ構造を保存します。

また、ドキュメントが保存されるとインデックスが付けられて、ほぼリアルタイム(1秒以内)で完全に検索できるようになります。

③柔軟性

構造化テキスト、非構造化テキスト、数値データ、地理空間データであっても高速検索をサポートし、また、データ量やクエリが増加しても分散型の性質により、展開も併せてシームレスに拡張することができます。

また、スキーマレス機能もあり、作成したデータの内容からデータ型をマッピングする機能も備えています。

④シンプルで一貫したアクセス方式

クラスターの管理やインデックスの作成や検索を行うにも、シンプルで一貫したREST APIを提供していて、Elasticsearchの機能や設定するために直接呼び出すことができます。

⑤スケーラビリティ

クラスター、ノード、シャードにより高可用性と拡張性を持つことができ、データ量に合わせてシステムを拡張することが可能となります。

関連するプロダクト

Elastic社が提供する以下プロダクトがあります。

  • Elasticseach
    • 検索、分析エンジン
  • Kibana
    • Elasticseachのデータを可視化する
    • 時系列分析やヒートマップなど
  • Logstash
    • サーバーサイドのデータ処理パイプライン
  • Beats
    • サーバーからLogstashやElasticseachにデータ転送する
    • ログや監視データなどのデータ転送

同様の機能を持つプロダクト

Apache Solr

Apache Luceneを基にしたオープンソースのフルテキスト検索エンジンです。多機能な検索、インデキシング、データ分析などを提供します。また、分散環境における検索をサポートすることでスケーラビリティを実現しています。Elasticsearchと比較すると、より長い歴史と幅広い利用実績を持っています。

Amazon CloudSearch

AWSが提供するフルマネージド型の検索サービスで、スケーラブルで安価にデータの検索を可能にします。データのインデキシングと検索が自動化されているため、運用コストを抑えられる利点があります。

Algolia

SaaS型の全文検索APIで、開発者がリアルタイムで検索機能を簡単に追加できるようにします。Algoliaはスピードとユーザーエクスペリエンスに焦点を当てており、レビューやランキング機能などの高度な検索機能を提供しています。

Splunk

ビッグデータ分析に特化したソフトウェアで、リアルタイムまたは保存されたデータからの検索、分析、視覚化を提供します。一部のユースケースでは、Elasticsearchよりも高度な機能を提供しますが、一般的にはコストが高いです。


以上Elasticsearchの特徴についてでした。

目次