我最近偶然发现了 Lucene 项目的 Zend Lucene 端口。我对 SOLR 有一点经验,所以我想知道它们两者之间有什么区别,尤其是在性能和安装方面。
据我所知,SOLR 需要在虚拟主机中运行 Tomcat serverlet 才能工作,那么 Zend Lucene 库呢?
我也有点困惑“在 Lucene 之上实现”是什么意思?
我最近偶然发现了 Lucene 项目的 Zend Lucene 端口。我对 SOLR 有一点经验,所以我想知道它们两者之间有什么区别,尤其是在性能和安装方面。
据我所知,SOLR 需要在虚拟主机中运行 Tomcat serverlet 才能工作,那么 Zend Lucene 库呢?
我也有点困惑“在 Lucene 之上实现”是什么意思?
Java Lucene 及其对其他语言的所有端口,包括 Zend Lucene,都是搜索库。
这意味着为了使用 Zend Lucene,您必须将其包装在其他 (PHP) 代码中,这会将搜索与应用程序的其余部分集成。代码通常需要管理 Lucene 的索引、检索以及通常的一些内务管理。您使用 PHP 函数调用与 Zend Lucene 进行通信。
Solr,OTOH,是一个建立在 Lucene 之上的搜索服务器。这意味着 Solr 实例可以在 servlet 容器(可以是 Tomcat、Jetty 或其他几个此类程序之一)内作为独立服务器 webapp 运行。设置 Solr 服务器比设置 Lucene 应用程序容易得多。您可以使用 Solr 做很多事情,而无需编写任何 Java 代码 - 只需调整一些 XML 配置文件。设置 Solr 服务器可能只需几分钟。与 Solr 通信的默认方式是使用 HTTP 调用。
所以基本上 Zend Lucene 安装需要有一个 PHP 服务器,并使用 PHP 库进行正确的索引和检索。Solr 安装需要运行 Java servlet 容器并在其中部署一个 war 文件。
在性能方面,Solr 优化了许多 Lucene 缓存和其他参数。另外,我相信 Zend Lucene 比 Java Lucene 慢,所以我打赌 Solr 会更快,但这真的取决于具体的应用程序。
上面的答案从两者之间的比较中得到了一些评论。
要进行更深入的分析,我建议您查看以下内容:
Solr 和 Zend Lucene 之间的比较。