ショートバージョンは、「イントラネットからドキュメントを探す必要がある従業員や、自分にぴったりのシューズをオンラインで探しているお客様など、誰もが必要なものを迅速に見つけられるようにサポートします」。技術的なバージョンは次のようになります:
Elasticsearchは、分散型で無料かつオープンな検索・分析エンジンです。テキスト、数値、地理空間情報を含むあらゆる種類のデータに、そして構造化データと非構造化データの双方に対応しています。Apache Luceneをベースに開発されたElasticsearchは、2010年にElasticsearch N.V.(Elasticの前身となる企業)がはじめてリリースしました。シンプルなREST APIや分散設計、スピードとスケールの優位性で広く浸透したElasticsearchは、現在もElastic Stackの中核となるプロダクトです。Elastic Stackはデータ投入からエンリッチメント、保管、分析、可視化までを実現する無料かつオープンなツール群です。Elasticsearch、Logstash、Kibanaの頭文字をとった"ELK Stack"の愛称でも知られています。Elasticsearchにデータを送る軽量なシッピングエージェント、Beatsも加わったことでElastic Stackになりました。
ログやシステムメトリック、Webアプリケーションなど、さまざまなソースの生データがElasticsearchに入ってきます。このような生データをElasticsearchにインデックスする前に、パースして正規化し、エンリッチするプロセスをデータ投入といいます。Elasticsearchにインデックスされたデータには、高度なクエリを実行したり、アグリゲーションを使用して複雑なデータのサマリーを取得することができます。さらにKibanaを使ってデータをパワフルに可視化したり、ダッシュボードを共有できるほか、Elastic Stack全体の管理を行うこともできます。
Elasticsearchインデックスとは、相互に関連付けられたドキュメントの集合です。Elasticsearchは各種データをJSONドキュメントとして格納します。各ドキュメントは一連のキー(フィールド名やプロパティ)と、それに対応する値(文字列、数値、ブール値、日付、数値アレイ、地理情報、ないしその他の種類のデータ)を関連付けます。
Elasticsearchは、超高速の全文検索を実現する目的で開発された倒置インデックスと呼ばれるデータ構造を使用します。倒置インデックスは、あらゆるドキュメントに出現する一意の単語をすべてリスト化することで、その単語が存在するドキュメントをすべて特定します。
Elasticsearchはインデックスのプロセスを通じてドキュメントを格納し、倒置インデックスを構築して、ドキュメントのデータをほぼリアルタイムに検索できるようにします。インデックスは、インデックスAPIによって開始されます。インデックスAPIを使って特定のインデックスにJSONドキュメントを追加したり、アップデートをしたりできます。
Elasticsearchは高速です。Luceneをベースに開発されているElasticsearchは、全文検索に優れた性能を発揮します。Elasticsearchは、ほぼリアルタイムの検索プラットフォームにもなります。つまり、ドキュメントがインデックスされて、検索可能になるまでのレイテンシーが非常に短時間。通常は1秒程度です。したがって、セキュリティ分析やインフラ監視など、タイムセンシティブなユースケースに最適です。
Elasticsearchは分散設計です。Elasticsearchでは、ドキュメントがシャードと呼ばれるコンテナーに分散して格納されます。ハードウェアの障害に、シャードは複製したコピーによる冗長化で対応します。Elasticsearchは設計レベルで分散化されていることで、何百、何千という代数のサーバーにスケールアウトさせることができ、ペタバイト規模のデータを扱うことができます。
Elasticsearchには、幅広い機能が内蔵されています。スピードとスケーラビリティ、回復性といったメリットに加えて、Elasticsearchにはデータロールアップやインデックスライフサイクル管理など、格納や検索をより効率的に実施するための多数の機能が内蔵されています。
Elastic Stackでデータ投入、可視化、レポート作成をシンプル化できます。BeatsやLogstashを併用して、Elasticsearchにインデックスする前段階のデータ処理を手軽に行うことができます。KibanaはElasticsearchデータをリアルタイムに可視化するだけでなく、アプリパフォーマンス監視(APM)やログ、インフラメトリックデータにすばやくアクセスするためのUIとしても使用できます。
Elasticsearchのオフィシャル配布パッケージは、Elastic Webサイトからご利用いただけます。
Elasticsearchは、Elasticが管理する無料かつオープンなプロジェクトです。コードベースには、Elasticの社内開発者と、社外の開発者の双方からのコントリビューションが含まれます。
プルリクエストは、Elasticsearch GitHubレポジトリから誰でも送信することができます。Elasticではあらゆるプルリクエストについて、コードベースに統合する前に透明性確保のためのレビューを実施しています。
Elasticsearchは、Elasticsearch Service(Amazon Web Services/AWS、Google Cloud、Alibaba Cloudで提供中)を利用してマネージドでデプロイすることも、お使いのハードウェアやクラウドにダウンロード&インストールしてデプロイすることもできます。Elasticsearchのドキュメントで、Elasticsearchのダウンロード、インストール、設定の手順を説明しています。
パブリッククラウドのプラットフォームを使わずにプロビジョニングや管理、デプロイの監視を1つのコンソールで実施したいという場合、Elastic Cloud Enterpriseまたはプライベートサブスクリプションのご利用をお勧めしています。Elastic Cloud Enterpriseは、パブリッククラウドだけでなくプライベートクラウド、仮想環境、オンプレミスハードウェアにデプロイしてお使いいただけるサービスです。
Elasticsearchはアラビア語やタイ語など、34の自然言語をサポートし、またアナライザーを提供しています。サポートされる自然言語の完全なリストは、Elasticsearch言語アナライザーに関するドキュメントをご覧ください。その他の言語と、カスタムプラグインのサポートを追加することもできます。
はい。Elasticsearchはクラスターヘルスの確認やCRUD(作成、読み取り、アップデート、削除)の実行、インデックスに対する検索操作、フィルタリングやアグリゲーションといった高度な操作を実行する包括的でパワフルな各種REST APIを提供しています。