私は最近、LuceneプロジェクトのZendLuceneポートに遭遇しました。私はSOLRの経験が少しあるので、特にパフォーマンスとインストールの面で2つの違いを知りたいと思います。
私が知っている限り、SOLRが機能するには、Webホスティングで実行されているTomcatサーバーレットが必要ですが、Zend Luceneライブラリはどうですか?
また、「Luceneの上に実装される」とはどういう意味ですか?
私は最近、LuceneプロジェクトのZendLuceneポートに遭遇しました。私はSOLRの経験が少しあるので、特にパフォーマンスとインストールの面で2つの違いを知りたいと思います。
私が知っている限り、SOLRが機能するには、Webホスティングで実行されているTomcatサーバーレットが必要ですが、Zend Luceneライブラリはどうですか?
また、「Luceneの上に実装される」とはどういう意味ですか?
Java Lucene、およびZend Luceneを含む他の言語へのすべての移植は、検索ライブラリです。
つまり、Zend Luceneを使用するには、他の(PHP)コードでラップする必要があります。これにより、検索がアプリケーションの他の部分と統合されます。コードは通常、Luceneのインデックス作成、取得、および通常はハウスキーピングを管理する必要があります。PHP関数呼び出しを使用してZendLuceneと通信します。
Solr、OTOHは、Lucene上に構築された検索サーバーです。これは、Solrインスタンスがサーブレットコンテナ内でスタンドアロンサーバーWebアプリとして実行できることを意味します(Tomcat、Jetty、または他のいくつかのそのようなプログラムの1つである可能性があります)。LuceneアプリケーションよりもSolrサーバーのセットアップがはるかに簡単です。いくつかのXML構成ファイルを微調整するだけで、Javaを1行も記述せずにSolrで多くのことを実行できます。Solrサーバーのセットアップには数分かかる場合があります。Solrと通信するためのデフォルトの方法は、HTTP呼び出しを使用することです。
したがって、基本的にZend Luceneのインストールには、PHPサーバーと、PHPライブラリを使用した適切なインデックス作成と取得が必要です。Solrをインストールするには、Javaサーブレットコンテナを実行し、それにwarファイルをデプロイする必要があります。
パフォーマンスに関しては、SolrはLuceneキャッシングおよびその他のパラメーターの多くを最適化しています。また、ZendLuceneはJavaLuceneよりも遅いと思うので、Solrの方が速いと思いますが、これは実際には特定のアプリケーションによって異なります。
上記の答えは、この2つの比較からいくつかのコメントを取ります。
より詳細な分析については、これを確認することをお勧めします:
SolrとZendLuceneの比較。