ElasticSearchがApache Luceneに基づいて構築されていることは知っていますが、2つの大きな違いを知りたいのです。
ElasticSearchがApache Luceneに基づいて構築されていることは知っていますが、2つの大きな違いを知りたいのです。
回答:
LuceneはJavaライブラリです。これをプロジェクトに含め、関数呼び出しを使用してその関数を参照できます。
ElasticsearchはJSONベース、分散型、WebサーバのLuceneの上に構築されました。その下で実際の作業を行っているのはLuceneですが、ElasticsearchはLuceneの上に便利なレイヤーを提供します。Elasticsearchで作成される各シャードは、個別のLuceneインスタンスです。要約すると
@Vineeth Mohanの言葉に加えて:
高可用性: Elasticsearchは分散されているため、データレプリケーションを管理できます。つまり、クラスター内にデータの複数のコピーを持つことができます。これにより、高可用性が実現します。
強力なクエリDSL:Elasticsearchは、Lucene上でクエリを読み書きするためのJSONインターフェイスを提供します。Elasticsearchのおかげで、Lucene構文を知らなくても複雑なクエリを記述できます。
スキーマレス(スキーマフリー):のフィールド(名前、値のペア)をschema
事前に定義する必要はありません。データにインデックスを付けると、elasticsearchは魔法のように実行時にスキーマを自動的に作成できます。
使用法の観点からお答えします。
Luceneは検索エンジンライブラリです。これを使用して、独自の検索エンジンを構築する必要があります。新しいElasticsearchまたはSolrの競合他社か、ユースケースに適したもの(テキスト分析など)のいずれかです。
Elasticsearchは検索エンジンです。ほとんどの人は、ログの集計、製品検索、またはこれら2つの変形(たとえば、ソーシャルメディア分析や特定の検索条件に関連する人の検索)に使用します。これはLuceneの上に構築されているため、その機能のほとんど(すべてではありません)を公開しています。それはまた、上に多くを追加します、最も重要なこと: