2009-08-09 80 views
3

如果索引在大型產品表中使用innodb,MyISAM由於缺少事務和關係支持而不是選項,我需要在一對夫婦上實現全文搜索。使用innoDb實現搜索功能的最佳方式

我可以想到一些方法來做到這一點,插件,存儲過程,帶鍵的搜索表和複製索引的MyIsam格式。

你是怎麼實現這個過去的,這是最好的方法(包括我沒有提到過的),爲什麼?

該插件聽起來很貴,存儲過程聽起來很慢,搜索表聽起來像和管理員的噩夢。

喜歡聽你的意見。

回答

3

一個可能性是使用外部(數據庫的獨立的)全文引擎一樣,例如,Lucene(如果你使用PHP,你可能也想看看Zend_Search_Lucene

有很多這些(一些免費的,一些昂貴的,一些開源,和一些專有);但它們通常會允許你比MySQL全文允許的更遠 - 並且它不會被集成到數據庫中(這可能是好的:例如可以索引文檔 - 或者可以是不好的:你可以將這些結果輕鬆地加入到您的SQL查詢結果中)

使用此類引擎的優勢在於全文搜索確實是他們的工作;而且他們應該做得很好(並且對於用戶傾向於輸入的內容是「聰明的」)。

缺點是你必須有另一個引擎;這意味着更多的工作,更多的配置和更多的開發,因爲你不能讓他們「插入」你的數據庫。

+1

我發現Zend_Search_Lucene是非常有趣的,謝謝您的意見 – Gavin 2009-08-12 18:45:03

+0

不客氣:-)玩得開心! – 2009-08-12 19:22:59

2

看一看Sphinx Search

+0

我同意。偉大的項目。 – 2009-08-09 22:22:17

+0

非常有趣,感謝您的高舉 – Gavin 2009-08-12 18:43:50

0

Xapian做了一組不錯的php綁定,和其他一些xapian一樣,它可以作爲一個單獨的服務器運行,監聽端口上的搜索請求,非常適合在多個站點之間共享內容。

「你的意思是」功能是存在於xapian中,但不在遠程服務器版本(尚未)

相關問題