LuceneとSolrは2つの異なるApacheプロジェクトであり、一緒に動作するように作られていることは知っていますが、各プロジェクトの目的がわかりません。
これまで私が理解していたことは、Luceneは検索インデックスの作成に使用され、Solrはこのインデックスを使用して検索を実行するということです。私は正しいのですか、これはまったく異なるアプローチですか?
LuceneとSolrは2つの異なるApacheプロジェクトであり、一緒に動作するように作られていることは知っていますが、各プロジェクトの目的がわかりません。
これまで私が理解していたことは、Luceneは検索インデックスの作成に使用され、Solrはこのインデックスを使用して検索を実行するということです。私は正しいのですか、これはまったく異なるアプローチですか?
回答:
@darkheir:LuceneとSolrは2つの異なるApacheプロジェクトであり、一緒に動作するように作られています。各プロジェクトの目的が何なのかわかりません。
1)Solrは内部でLuceneを使用します。LuceneにはSolr APIについての手掛かりがありません。
2)Luceneは、アプリケーションに検索機能を追加できる強力な検索エンジンフレームワークです。すべての検索関連の複雑な操作を隠しながら、使いやすいAPIを公開します。Solrだけでなく、どのアプリケーションでもこのライブラリを使用できます。
3)SolrはLuceneを中心に構築されています。これはLuceneの単なるhttpラッパーではなく、Luceneに武器を追加することが知られています。Solrはすぐに使用できる状態です。これは、Luceneが提供するものに加えて、関連するインフラストラクチャーと多くの機能を提供するWebアプリケーションです。
@darkheir:Luceneは検索インデックスの作成に使用され、Solrはこのインデックスを使用して検索を実行します。私は正しいのですか、これはまったく異なるアプローチですか?
4)LuceneはSolrが消費するためのインデックスを作成するだけではありません。Luceneは、検索に関連するすべての操作を処理します。どのアプリケーションでもLuceneフレームワークを使用できます。
例としては、Solr、Elastic Search、LinkedIn(はい、内部)、などがあります。
この記事をチェックしてください:Lucene vs Solr
アップデート(6/18/14)
いつLuceneを使用するのですか?
Solrを使用する場合
注:Solrをカスタマイズするのが難しいという意味ではありません。Solrは非常に柔軟性があり、プラグイン可能な多数のAPIポイントを提供するため、コードを組み込むことができます。
「Luceneを使用する必要がある」キャンプに該当する人もいますが、使いやすいため、LuceneをプレーンにするよりもSolrを好んでいます。ただし、Solrのカスタマイズを最大限に制限することは決してありません。
ところで、Solr(4.x)にはLucene(4.x)よりも多くのリソースがあるようです。
SolrとLuceneの関係を概念化する簡単な方法は、車とそのエンジンの関係です。エンジンは運転できませんが、車は運転できます。同様に、Luceneはそのままでは使用できないプログラムライブラリですが、Solrはそのまま使用できる完全なアプリケーションです。
SolrはLuceneの上に構築され、検索プラットフォームを提供します。
次のレイヤーのプラットフォームを下から上に検索します。
参照記事:エンタープライズ検索
次のように想像できます。ApacheLuceneは、Apache Solrによって内部的に使用されるライブラリです。それはJavaで書かれており、驚くべき全文検索とインデックス作成機能を提供します。世界中の多数の言語を分析し、そのような言語でテキストを準備して、効率的で高速な検索と分析を行うことができます。Luceneはライブラリです。アプリケーションで直接使用してすべてを自分で実装することもできますが、Apache Solrには多くの機能が用意されています。
Apache Solr検索エンジンは、HTTP APIなどにデータを送信し、後でそのデータを検索するために使用できるものを提供します。APIを使用して検索エンジンを制御し、分散環境を作成して、データを複数のノードなどに自動的に分散できます。
lucenceとsolarの目的については、こちらでよく比較できます。
http://www.lucenetutorial.com/lucene-vs-solr.html
TLDR:Lucenceは単なるエンジンであり、Solarはあなたが運転できる車です(rest-apiなどを装備しています)