English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch 概要

ElasticsearchはApache Luceneに基づく検索サーバーです。Shay Banonによって開発され、2010年刊行。現在、Elasticsearch BVがメンテナンスしています。最新バージョンは7.0.0。

Elasticsearchはリアルタイムの分散型オープンソースの全テキスト検索および分析エンジンです。RESTful Webサービスインターフェースからアクセスでき、無模式のJSON(JavaScriptオブジェクト表現法)でデータをストレージします。Javaプログラミング言語で構築されているため、Elasticsearchはさまざまなプラットフォームで動作します。これにより、大量のデータを非常に高速にスキャンすることができます。

機能

Elasticsearchの一般的な機能は以下の通りです-

  • ElasticsearchはPBレベルの構造化および非構造化データまで拡張可能です。

  • ElasticsearchはMongoDBやRavenDBなどのドキュメントストレージを代替できます。

  • Elasticsearchは検索性能を向上させるために非正規化を使用しています。

  • Elasticsearchは人気のある企業用検索エンジンの一つであり、現在、Wikipedia、The Guardian、StackOverflow、GitHubなどの多くの大規模な組織で使用されています。

  • Elasticsearchはオープンソースであり、Apacheライセンスバージョンで利用できます。2バージョン0.0で使用されます。

主要な概念

Elasticsearchの主要な概念は以下の通りです-

ノード

これはElasticsearchの単一の実行インスタンスを指し、物理および仮想サーバーは物理リソース(RAM、ストレージ、処理能力など)の能力に応じて複数のノードを収容できます。

クラスタ

これはノードの集合であり、群集はすべてのデータに対して、すべてのノードを通じて集団的なインデックスと検索機能を提供します。

インデックス

これは異なるタイプのドキュメントとその属性の集合であり、インデックスはスライスの概念を使用して性能を向上させます。例えば、ソーシャルネットワークアプリケーションのデータが含まれる一連のドキュメントが含まれる場合があります。

ドキュメント

これは特定の方法でJSON形式で定義されたフィールドの集合であり、各ドキュメントは一種のタイプに属し、インデックス内に位置します。各ドキュメントはUIDと呼ばれるユニークな識別子に関連付けられています。

ピース

インデックスは水平方向にスライスされ、クラスターに分割されます。これは、各スライスがドキュメントのすべての属性を含んでいるが、インデックスに含まれるJSONオブジェクトの数が少ないことを意味します。水平分割により、スライスは独立したノードとして機能し、任意のノードに保存できます。メインスライスはインデックスの元の水平部分であり、これらのメインスライスが副本スライスにコピーされます。

コピー

Elasticsearchはユーザーがインデックスとクラスターのコピーを作成することを許可します。コピーはデータの可用性を高めるだけでなく、これらのコピーで並行して検索操作を実行することで検索性能を向上させます。

优势

  • ElasticsearchはJavaで開発されているため、ほぼすべてのプラットフォームで互換性があります。

  • Elasticsearchはリアルタイムであり、これは1秒後に追加されたドキュメントがこのエンジンで検索できることを意味します。

  • Elasticsearchは分散型であるため、大規模な組織内で簡単に拡張および統合ができます。

  • gatewayの概念を使用して完全なバックアップを作成することは非常に簡単で、この概念はElasticsearchではよく見られます。

  • Apache Solrと比較して、Elasticsearchではマルチテナントの処理が非常に簡単です。

  • ElasticsearchはJSONオブジェクトを使用してレスポンスを行うため、多くの異なるプログラミング言語でElasticsearchサーバーを呼び出すことができます。

  • テキストレンダリングをサポートしないドキュメントタイプ以外は、Elasticsearchはほぼすべてのドキュメントタイプをサポートしています。

欠点

  • リクエストとレスポンスデータの処理において、Elasticsearchは多言語サポートを提供しません(JSONでのみ利用可能です)。Apache Solrとは異なり、CSV、XML、JSON形式をサポートしています。

  • 時には、Elasticsearchがブラインド裂け問題が発生することがあります。

ElasticsearchとRDBMSの比較

Elasticsearchでは、インデックスはRDBMS(関係データベース管理システム)のテーブルに似ています。各テーブルは行の集合であり、各インデックスはElasticsearchのドキュメントの集合です。

以下の表はこれらの用語を直接比較しています-

Elasticsearch関係データベース管理システム(RDBMS)
クラスタデータベース
ピースピース
インデックステーブル
フィールド
ドキュメント