LuceneとElasticsearchの違いは何ですか


回答:


217

LuceneはJavaライブラリです。これをプロジェクトに含め、関数呼び出しを使用してその関数を参照できます。

ElasticsearchはJSONベース、分散型WebサーバのLuceneの上に構築されました。その下で実際の作業を行っているのはLuceneですが、ElasticsearchはLuceneの上に便利なレイヤーを提供します。Elasticsearchで作成される各シャードは、個別のLuceneインスタンスです。要約すると

  1. ElasticsearchはLucene上に構築され、Luceneの機能を参照するためのJSONベースのREST APIを提供します
  2. ElasticsearchはLuceneの上に分散システムを提供します。分散システムは、Luceneが認識または構築したものではありません。Elasticsearchは、この分散構造の抽象化を提供します。
  3. Elasticsearchは、スレッドプール、キュー、ノード/クラスター監視API、データ監視API、クラスター管理などのその他のサポート機能を提供します。

1
データストアに関して両方の間に違いはありますか?
AlikElzin-kilaka 2017

データストアはどうですか?
Rookian 2018年

10
これがDataStoreに関する質問に答えるかどうかはわかりませんが、各Elasticsearchノードにはシャードが含まれています。単一のElasticsearchインデックスは、シャードを使用してノード全体に分散されます。各シャードは、Elasticsearch Indexにドキュメントの一部を保持します。これらのシャードはそれぞれLuceneのインスタンスです。したがって、ルートでは、すべてのデータがLuceneに格納され、Elasticsearchが対話を管理します。
Airn5475

32

@Vineeth Mohanの言葉に加えて:

高可用性: Elasticsearchは分散されているため、データレプリケーションを管理できます。つまり、クラスター内にデータの複数のコピーを持つことができます。これにより、高可用性が実現します。

強力なクエリDSL:Elasticsearchは、Lucene上でクエリを読み書きするためのJSONインターフェイスを提供します。Elasticsearchのおかげで、Lucene構文を知らなくても複雑なクエリを記述できます。

スキーマレス(スキーマフリー):のフィールド(名前、値のペア)をschema事前に定義する必要はありません。データにインデックスを付けると、elasticsearchは魔法のように実行時にスキーマを自動的に作成できます。


0

使用法の観点からお答えします。

Luceneは検索エンジンライブラリです。これを使用して、独自の検索エンジンを構築する必要があります。新しいElasticsearchまたはSolrの競合他社か、ユースケースに適したもの(テキスト分析など)のいずれかです。

Elasticsearchは検索エンジンです。ほとんどの人は、ログの集計、製品検索、またはこれら2つの変形(たとえば、ソーシャルメディア分析や特定の検索条件に関連する人の検索)に使用します。これはLuceneの上に構築されているため、その機能のほとんど(すべてではありません)を公開しています。それはまた、上に多くを追加します、最も重要なこと:

  • REST API
  • DSLのクエリ
  • 分散システム(シャーディング、レプリケーション、クラスター管理)
  • ファセット/ 集約
  • 一般的な使用法(取り込み処理など)と管理(関連するメトリックを監視するためのAPI 、バックアップと復元など)の追加機能
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.