mysqlcftMySQL全文搜索引擎
MySQL在高并發(fā)連接、數(shù)據(jù)庫記錄數(shù)較多的情況下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不僅效率差,而且以通配符%開頭作查詢時,使用不到索引,需要全表掃描,對數(shù)據(jù)庫的壓力也很大。MySQL針對這一問題提供 了一種全文索引解決方案,這不僅僅提高了性能和效率(因為MySQL對這些字段做了索引來優(yōu)化搜索),而且實現(xiàn)了更高質(zhì)量的搜索。但是,至今為 止,MySQL對中文全文索引無法正確支持。
Mysqlcft 是為 MySQL 5.1.22 ~ 5.1.25 RC 開發(fā)的中文全文索引插件,用于解決MySQL無法正確支持中文全文檢索的問題。
特點:
1、優(yōu)點:
- 精準(zhǔn)度很高:采用自創(chuàng)的“三字節(jié)交叉切分算法”,對中文語句進(jìn)行分割,無中文分詞詞庫,搜索精準(zhǔn)度遠(yuǎn)比中文分詞算法高,能達(dá)到LIKE '%...%"的準(zhǔn)確率。
- 查詢速度快:查詢速度比LIKE '%...%"搜索快3~50倍,文章末尾有測試結(jié)果;
- 標(biāo)準(zhǔn)插件式:以MySQL 5.1全文索引的標(biāo)準(zhǔn)插件形式開發(fā),不修改MySQL源代碼,不影響MySQL的其他功能,可快速跟進(jìn)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),無詞庫維護(hù)成本,不存在詞庫同步問題。
2、缺點:
- mysqlcft中文全文索引只適用于MyISAM表,因為MySQL只支持對MyISAM表建立FULLTEXT索引;
- MySQL不能靜態(tài)編譯安裝,否則無法安裝mysqlcft插件;
- 基于“三字節(jié)交叉切分算法”的索引文件會比海量、ft-hightman等基于“中文分詞算法”的索引文件稍大,但不是大很多。
根據(jù)我的測試,mysqlcft全文索引的.MYI索引文件是.MYD數(shù)據(jù)文件的2~6倍。
評論
圖片
表情
