2010-01-06 65 views
25

我可以在PHP中使用Lucene嗎?我不想使用Zend。我可以在原生PHP(不是框架)中使用嗎?Lucene與PHP

+1

「我可以」是一個非常廣泛的問題。當然可以」。但是,這是否合理?請擴展您的問題以說明您打算如何使用它。 – gahooa 2010-01-06 02:59:32

+0

我想在Lucene中使用全文搜索。 MySQL搜索超過800萬條記錄的速度太慢。所以,我想試試Lucene – saturngod 2010-01-06 03:50:15

回答

27

我建議使用Apache SOLR作爲您的Lucene後端,並通過您的PHP代碼中的Web服務調用進行連接。

我還會注意到,在您的應用程序中選擇Zend Framework的組件以便在不加載整個框架的情況下很容易。您可以在您的網站中使用Zend_Search_Lucene,並放棄Zend的MVC,數據庫和相關組件。

+0

謝謝。我將嘗試使用Apache SOLR – saturngod 2010-01-06 03:18:54

+7

我想標記一下您使用JSON而不是XML檢索結果的建議(個人偏好)。 – Brian 2010-01-06 20:36:27

4

另外值得注意的是,SOLR (http://lucene.apache.org/solr/)有一個簡單的HTTP API,並建立在Lucene之上,所以如果它提供了你所需要的,那麼這是一個簡單的答案!

我沒有Lucene與PHP的直接經驗,所以我會推遲到那些專家。

2

當你說你不想使用Zend時,我假設你的意思是你不想使用整個Zend Framework。那麼你不需要 - 獨立的Zend組件可以獨立使用,無需成爲Zend框架項目的一部分。

+0

怎麼樣?有沒有待辦事項? – siniradam 2015-02-10 12:58:08

+2

好吧,我在5年前寫了這個答案,那時你只需下載框架,將其粘貼到包含路徑中,然後require_once所需的文件(例如Zend/Lucene/Search.php)或使用自動加載,以及像文檔中那樣訪問該類。現在我們有作曲家,這使得它更容易。 Zend 1的Zend Lucence實際上可用於作曲家 - https://packagist.org/packages/zf1/zend-search-lucene。關於如何使用作曲家的說明可以在這裏找到:https://getcomposer.org/doc/01-basic-usage.md – Gnuffo1 2015-02-11 14:02:19

1

我使用Lucene用PHP做系統調用Java的,例如:

java ... .SearchFiles -index C:\shop\system\index -high -queries Computer* 

我已經適應SearchFiles生成HTML代碼,但輸出也可以被動態PHP代碼(例如一個數組持有搜索結果)。

該系統速度非常快,在服務器上不需要超過Java。

-3

是的,你可以簡單的索引和使用Apache Lucene的庫中搜索目標代碼的Java模塊。然後你可以用php/java橋或SOAP將它與php模塊合併。這對你來說將是非常好的學習經驗。