2010-06-14 35 views
12

我已經無意中陷入了Lucene項目的Zend Lucene端口。我對SOLR有一點點經驗,所以我想知道它們兩者之間的區別,特別是從性能和安裝方面。Zend_Search_Lucene vs SOLR

儘管我知道SOLR要求Tomcat serverlet在虛擬主機中運行才能工作,那麼Zend Lucene庫呢?

我也有點困惑什麼意思是「在Lucene的頂端實現」?

回答

18

Java Lucene及其所有其他語言的端口,包括Zend Lucene,都在搜索

這意味着爲了使用Zend Lucene,您必須將其包裝在其他(PHP)代碼中,這將將搜索與您的其他應用程序集成在一起。該代碼通常需要管理索引,檢索以及通常對Lucene的一些管理。您使用PHP函數調用與Zend Lucene進行通信。

Solr,OTOH,是一個搜索服務器建立在Lucene之上。這意味着一個Solr實例可以作爲一個獨立的服務器webapp在一個servlet容器(可以是Tomcat,Jetty或其他幾個這樣的程序之一)內運行。設置Solr服務器比Lucene應用程序容易得多。只需調整一些XML配置文件,您就可以在不編寫任何一行Java的情況下用Solr做很多事情。設置Solr服務器可能需要幾分鐘的時間。與Solr通信的默認方式是使用HTTP調用。

所以基本上,Zend Lucene安裝需要有一個PHP服務器,並使用PHP庫進行適當的索引和檢索。 Solr安裝需要運行Java servlet容器並將war文件部署到其中。

關於性能,Solr有許多Lucene緩存和其他參數的優化。另外,我相信Zend Lucene比Java Lucene慢,所以我敢打賭,Solr會更快,但這取決於具體的應用程序。

+0

是的,Zend Lucene與Java在性能方面無法匹敵。 – demonkoryu 2012-07-09 13:56:16