Elasticsearchは、Elastic社によって開発されたソース利用可能な検索エンジンである。Apache Luceneを基盤としており、HTTPウェブインターフェースとスキーマフリーのJSONドキュメントを備えた、分散型でマルチテナント対応の全文検索エンジンを提供する。公式クライアントはJava、C#、PHP、Python、Ruby、その他の言語で利用可能である。DB-Enginesランキングによると、Elasticsearchは最も人気のあるエンタープライズ検索エンジンである。ベクトル検索にもよく使用され、人工知能や機械学習の文脈でのアプリケーションを支えている。
Elasticsearchは分散型であり、シャードに分割されたインデックスに格納されたJSONドキュメントを使用する。各シャードはクラスターノード全体に分散されたレプリカを持つことができる。全文検索、ファセット検索、リアルタイム検索、マルチテナンシーをサポートする。このソフトウェアは、Logstash、Kibana、BeatsとともにElastic Stack(旧ELK Stack)の一部として開発されている。
歴史
Shay Banonは2004年にElasticsearchの前身であるCompassを作成した。Compassの第3版を開発する中で、JSONをHTTP上の共通インターフェースとして使用するスケーラブルで分散型の検索ソリューションを構築するには完全な書き直しが必要であると結論付けた。彼は2010年2月にElasticsearchの最初のバージョンをリリースした。
Elastic NVは2012年に、Elasticsearchおよび関連ソフトウェアを中心とした商用サービスと製品を提供するために設立された。2014年6月、同社はNew Enterprise Associatesが主導するシリーズCラウンドで7000万ドルを調達し、Benchmark CapitalとIndex Venturesからも追加資金を得て、総調達額は1億400万ドルに達した。
2015年3月、同社は社名をElasticsearchからElasticに変更し、Foundの買収を通じて、後にElastic Cloudとして知られるマネージドクラウドサービスを開始した。2017年11月、Elasticは検索スタートアップのSwiftypeを買収し、その技術はElastic App SearchとElastic Site Searchの基盤となった。Elasticはまた、Google Cloud Platform上でElastic Cloudを提供するためのGoogleとの提携、およびAlibaba Cloud上でElasticsearchとKibanaを提供するためのAlibabaとの提携も結んだ。
2018年6月、Elasticは推定評価額15億ドルから30億ドルで新規株式公開を申請した。2018年10月5日、Elasticはニューヨーク証券取引所に上場した。
ライセンス変更
2021年1月、Elasticはバージョン7.11以降、ElasticsearchとKibanaのライセンスをApache License 2.0から、Server Side Public LicenseとElastic Licenseのデュアルライセンスに変更すると発表した。どちらのライセンスもオープンソースライセンスとして認められていない。Elasticは、この変更はAmazon Web Services(AWS)が、Elasticが適切な協力と表現したものを欠いた形でElasticsearchとKibanaをサービスとして提供したことへの対応であると述べた。この変更の批判者らは、Elasticが以前にElasticsearch、Kibana、Beats、LogstashのApache 2.0ライセンスを決して変更しないと約束していたことを指摘し、この動きがエコシステムに損害を与えると予測した。
AWSはこれに応じて、Apache License 2.0の下で開発を継続するためのプロジェクトのフォークを発表した。Logz.io、CrateDB、AivenなどのElasticsearchエコシステムの他のメンバーもフォークを支援することを約束した。「Elasticsearch」という名前の潜在的な商標紛争のため、AWSは2021年4月にフォークをOpenSearchとしてブランド変更した。
2024年8月、Elasticはバージョン8.16.0以降のElasticsearchに、GNU Affero General Public Licenseを第3のライセンスオプションとして追加した。これにより、ソフトウェアは2つのソース利用可能なオプションに加えて、再びフリーでオープンソースのライセンスの下で利用可能になった。
アーキテクチャと機能
ElasticsearchはApache Lucene上に構築されており、JSONおよびJava APIを通じてLuceneの機能を公開している。ドキュメントはインデックスに格納され、インデックスはプライマリシャードに分割される。各シャードはクラスターノード全体に分散されたゼロ個以上のレプリカを持つことができる。ルーティングとリバランシングは自動的に処理される。インデックスが作成されると、プライマリシャードの数は変更できない。
このエンジンはファセット検索とパーコレーションをサポートしている。パーコレーションは、保存されたクエリが受信ドキュメントに対して照合されるという、逆の形式のプロスペクティブ検索である。ゲートウェイモジュールは長期のインデックス永続性を処理し、ノード障害後にインデックスを回復できるようにする。リアルタイムのGETリクエストにより、ElasticsearchはNoSQLデータストアとして使用可能になるが、分散トランザクションはサポートしていない。
2019年5月、ElasticはElastic Stackのコアセキュリティ機能を無料で利用可能にした。これには、暗号化通信のためのTLS、ファイルおよびネイティブレルム認証、クラスターAPIとインデックスに対するロールベースのアクセス制御が含まれる。対応するソースコードはElastic Licenseの下で利用可能である。Elasticsearchはまた、商用オファリングの一部としてSIEMおよび機械学習機能も提供している。
公式クライアントライブラリは、Java、C#(.NET)、PHP、Python、Rubyなどで保守されている。
Elastic Stack
Elasticsearchは、Logstash(データ収集およびログ解析エンジン)、Kibana(分析および可視化プラットフォーム)、Beats(軽量データシッパー)とともに開発されている。これら4つの製品は、Elastic Stackとして一緒に使用されるように設計されている。この組み合わせは以前はELK Stackとして知られており、「Elasticsearch、Logstash、Kibana」の頭字語である。
関連項目
- 情報抽出
- Kibana
- Grafana
- 情報検索ライブラリの一覧
- OpenSearch(ソフトウェア) - AWSが保守するElasticsearchのオープンソースフォーク
- Graylog
参考文献
外部リンク
- 公式ウェブサイト