web-dev-qa-db-ja.com

LuceneとElasticsearchの違いは何ですか

ElasticSearchはApache Lucene上に構築されていることは知っていますが、この2つの重要な違いを知りたいと思います。

102
Satish Madiwal

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

Elasticsearchは、JSON Based、Distributedweb server Luceneをビルドします。下の実際の作業を行っているのはLuceneですが、ElasticsearchはLuceneの便利なレイヤーを提供します。 Elasticsearchで作成される各シャードは、個別のLuceneインスタンスです。まとめると

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

@ Vineeth Mohan wordsに加えて:

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

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

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

19
fgul