SolrとLuceneの違い


163

LuceneとSolrは2つの異なるApacheプロジェクトであり、一緒に動作するように作られていることは知っていますが、各プロジェクトの目的がわかりません。

これまで私が理解していたことは、Luceneは検索インデックスの作成に使用され、Solrはこのインデックスを使用して検索を実行するということです。私は正しいのですか、これはまったく異なるアプローチですか?


5
しないlucene.apache.org/solrという答え(Luceneのためにと同等のページ)?
NPE 2013年

そうです、Solr機能のページで違いを明らかにしています。Si私が理解している場合、Luceneを単独で使用できますが、SolrはLuceneを動作させる必要があります。
darkheir 2013年

2
Luceneとは異なり、SolrはWebアプリケーション(WAR)であり、Jetty、Tomcat、Resinなどのサーブレットコンテナーにデプロイできます。Solrは、プログラマー以外でもインストールして使用できます。Luceneはできません。lucenetutorial.com/lucene-vs-solr.htmlの
Lucky

回答:


229

@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を使用するのですか?

  • あなたは検索エンジニアであり、かつ
  • あなたはプログラマーであり、かつ
  • Luceneのほぼすべての内部を完全に制御したい
  • あなたの要件は、Luceneにあらゆる種類のマニアックなカスタマイズを行うことを要求します
  • スケーリング、分散など、検索のインフラストラクチャ要素を処理する用意があります。

Solrを使用する場合

  • 上記の少なくとも1つは意味がありませんでした。または
  • (Javaの知識がなくても)すぐに使用できる状態にしたいものがあるか、または
  • インフラストラクチャの要件は、検索のカスタマイズ要件よりも重要です。

:Solrをカスタマイズするのが難しいという意味ではありません。Solrは非常に柔軟性があり、プラグイン可能な多数のAPIポイントを提供するため、コードを組み込むことができます。

Luceneを使用する必要がある」キャンプに該当する人もいますが、使いやすいため、LuceneをプレーンにするよりもSolrを好んでいます。ただし、Solrのカスタマイズを最大限に制限することは決してありません。

ところで、Solr(4.x)にはLucene(4.x)よりも多くのリソースがあるようです。


31

Luceneは、インデックス作成、分析、検索などを実装する低レベルのJavaライブラリ(.NETへのポートなど)です。

Solrは、Luceneを使用するスタンドアロンの事前設定された製品/ Webアプリケーションです。Java APIではなくHTTP APIを扱いたい場合は、Solrが適しています。Solrには、いくつかの追加機能(グループ化など)もあります。


21

SolrとLuceneの関係を概念化する簡単な方法は、車とそのエンジンの関係です。エンジンは運転できませんが、車は運転できます。同様に、Luceneはそのままでは使用できないプログラムライブラリですが、Solrはそのまま使用できる完全なアプリケーションです。

ソース:Lucene-vs-solr-Luceneチュートリアル


5
lucenetutorial.com/lucene-vs-solr.htmlからコピー貼り付けされたものソースを引用して回答をコピーして貼り付けるときは、ソースに言及してください。;)
ラッキー

1
ページは現在オフラインのようです。
dev_feed 2016年

15

SolrはLuceneの上に構築され、検索プラットフォームを提供します。

次のレイヤーのプラットフォームを下から上に検索します。

  • データ
    • 目的:さまざまなデータ型とソースを表す
  • 文書作成
    • 目的:インデックス作成のためのドキュメント情報を作成する
  • インデックス作成と検索
    • 目的:ドキュメントインデックスを作成してクエリする
  • ロジックの強化
    • 目的:検索クエリと結果を処理するための追加ロジック
  • 検索プラットフォームサービス
    • 目的:サービスプラットフォームを提供するために、検索エンジンコアの追加機能を追加します。
  • UIアプリケーション
    • 目的:エンドユーザー検索インターフェースまたはアプリケーション

Solrスタック

参照記事:エンタープライズ検索


12

SOLRはラッパーです Luceneインデックスのです。

理解するのは簡単です。SOLRは車で、Luceneはそのエンジンです。車の運転方法(SOLR)と、車のエンジンに問題が発生した場合に備えて、エンジン(Lucene)のいくつかのことを知る必要があります。

安全なドライブを持っている:)


3
言うまでもなく、その傾向があるなら、Luceneエンジンを使って自分の車を作ることができます。
ヒント

1

次のように想像できます。ApacheLuceneは、Apache Solrによって内部的に使用されるライブラリです。それはJavaで書かれており、驚くべき全文検索とインデックス作成機能を提供します。世界中の多数の言語を分析し、そのような言語でテキストを準備して、効率的で高速な検索と分析を行うことができます。Luceneはライブラリです。アプリケーションで直接使用してすべてを自分で実装することもできますが、Apache Solrには多くの機能が用意されています。

Apache Solr検索エンジンは、HTTP APIなどにデータを送信し、後でそのデータを検索するために使用できるものを提供します。APIを使用して検索エンジンを制御し、分散環境を作成して、データを複数のノードなどに自動的に分散できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.