一直以來MySQL的中文全文索引都沒有一個很理想的解決方案。 最新發(fā)現(xiàn) 有這樣一個插件 ,mysqlcft 不知道分詞和檢索效果會如何,記錄下來,有空再詳細研究一下。
http://blog.s135.com/post/356.htm
國內(nèi)已有的MySQL中文全文索引解決方案有兩個:一是海量科技的MySQL5.0.37--LinuxX86-Chinese+,二是hightman開發(fā)的mysql-5.1.11-ft-hightman, 兩者都是基于中文分詞技術(shù),對中文語句進行拆分。但是,兩者都有弊端,一是不支持64位操作系統(tǒng);二是對修改了MySQL源碼,只支持某一MySQL版 本,不便于跟進新版本;三是詞庫不能做到很大很全,對于專業(yè)性質(zhì)較強的數(shù)據(jù)庫內(nèi)容(例如搜索“頤和園路東口”、“清華東路西口”等公交站點,“萊鎮(zhèn)香格里 ”、“碧海云天”等樓盤名稱),基于中文分詞的全文索引經(jīng)常搜索不出來任何內(nèi)容,即使添加分詞詞庫,也不會很全面。
-----------------
一、MySQL中文全文索引插件mysqlcft的特點:
1、優(yōu)點:
①、精準度很高:采用自創(chuàng)的“三字節(jié)交叉切分算法”,對中文語句進行分割,無中文分詞詞庫,搜索精準度遠比中文分詞算法高,能達到LIKE '%...%"的準確率。
②、查詢速度快:查詢速度比LIKE '%...%"搜索快3~50倍,文章末尾有測試結(jié)果;
③、標準插件式:以MySQL 5.1全文索引的標準插件形式開發(fā),不修改MySQL源代碼,不影響MySQL的其他功能,可快速跟進MySQL新版本;
④、支持版本多:支持所有的MySQL 5.1 Release Candidate版本,即MySQL 5.1.22 RC~最新的MySQL 5.1.25 RC;
⑤、支持字符集:支持包括GBK、GB2312、UTF-8、Latin1、BIG5在內(nèi)的MySQL字符集(其他字符集沒有測試過);
⑥、系統(tǒng)兼容好:具有i386和x86_64兩個版本,支持32位(i386)和64位(x86_64)CPU及Linux系統(tǒng);
⑦、適合分布式:非常適合MySQL Slave分布式系統(tǒng)架構(gòu),無詞庫維護成本,不存在詞庫同步問題。
2、缺點:
①、mysqlcft中文全文索引只適用于MyISAM表,因為MySQL只支持對MyISAM表建立FULLTEXT索引;
②、MySQL不能靜態(tài)編譯安裝,否則無法安裝mysqlcft插件;
③、基于“三字節(jié)交叉切分算法”的索引文件會比海量、ft-hightman等基于“中文分詞算法”的索引文件稍大,但不是大很多。根據(jù)我的測試,mysqlcft全文索引的.MYI索引文件是.MYD數(shù)據(jù)文件的2~5倍。