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