2011-04-15 54 views
0

我查看了Doctrine的內置搜索,MySQL myisam全文搜索,Zend_Lucene和sphinx - 但所有細微差別和實現細節都讓我很難理解,因爲我沒有任何經驗除了myisam搜索。Zend Framework + Doctrine + MySQL的良好搜索解決方案?

我真正想要的是簡單的東西,它可以與Zend Framework和Doctrine(MySQL後端,可能是InnoDB)一起工作。我不需要諸如單詞替換,自動完成等複雜的東西(不是我會反對這樣的事情,如果它足夠簡單並且時間有效足以實現)。

最主要的是能夠在多個數據庫表中搜索字符串,並使用一些基本搜索條件(例如user.state. = CA AND user.active = 1)搜索多個字段。數據庫的大小將從大約50K +條記錄開始(舊數據被轉儲),最大的單個可搜索表格大約有15000條記錄,並且隨着時間的推移它會大幅增長。

也就是說,Zend_Lucene對我很有吸引力,因爲它非常靈活(以防我將來需要我的搜索解決方案),並且因爲它可以解析MS Office文件(將由用戶上傳到我的應用程序) 。但其靈活性也使其設置起來很複雜。

我想最直接的選擇是使用Doctrine的搜索功能,但我不確定是否能夠處理我需要的東西。我不知道在那裏有什麼選擇會結合我對簡單的力量的渴望。

你會推薦我調查哪些搜索解決方案?爲什麼你會認爲這種解決方案在這種情況下會很好用?

回答

1

我會推薦使用Solr搜索引擎。

Solr的是基於Lucene Java的搜索庫的開源企業搜索服務器,使用XML/HTTP和JSON的API,命中突出,面搜索,緩存,複製,網絡管理界面(這是真正偉大的)和更多的功能。

它運行在Java servlet容器(如Tomcat)中。

您可以使用solr-php-client來處理php中的查詢。