注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zjcjack的博客

 
 
 

日志

 
 

MySQL中文全文索引插件mysqlcft  

2012-02-21 23:05:36|  分类: mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大。MySQL针对这一问题提供了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索。但是,至今为止,MySQL对中文全文索引无法正确支持。

  Mysqlcft 是为 MySQL 5.1.22 ~ 5.1.25 RC 开发的中文全文索引插件,用于解决MySQL无法正确支持中文全文检索的问题。

  更多的信息见:《MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档

一、MySQL中文全文索引插件mysqlcft的特点:

1、优点:

  ①、精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。

  ②、查询速度快:查询速度比LIKE '%...%"搜索快3~50倍,文章末尾有测试结果;

  ③、标准插件式:以MySQL 5.1全文索引的标准插件形式开发,不修改MySQL源代码,不影响MySQL的其他功能,可快速跟进MySQL新版本;

  ④、支持版本多:支持所有的MySQL 5.1 Release Candidate版本,即MySQL 5.1.22 RC~最新的MySQL 5.1.25 RC;

  ⑤、支持字符集:支持包括GBK、GB2312、UTF-8、Latin1、BIG5在内的MySQL字符集(其他字符集没有测试过);

  ⑥、系统兼容好:具有i386和x86_64两个版本,支持32位(i386)和64位(x86_64)CPU及Linux系统;

  ⑦、适合分布式:非常适合MySQL Slave分布式系统架构,无词库维护成本,不存在词库同步问题。

2、缺点:

  ①、mysqlcft中文全文索引只适用于MyISAM表,因为MySQL只支持对MyISAM表建立FULLTEXT索引;

  ②、MySQL不能静态编译安装,否则无法安装mysqlcft插件;

  ③、基于“三字节交叉切分算法”的索引文件会比海量、ft-hightman等基于“中文分词算法”的索引文件稍大,但不是大很多。根据我的测试,mysqlcft全文索引的.MYI索引文件是.MYD数据文件的2~6倍。

二、mysqlcft的核心思想──“三字节交叉切分算法”

  MySQL中文全文索引插件mysqlcft - 自游劲 - zjcjack的博客

  注:本文以0~7数字序号代表“英文”、“数字”和“半个汉字”,以便说明。

  1、按三字节对中文语句进行切分,建立全文索引:

  例如:“全文索引”或“1台x光机”四个字会被交叉分拆为6份,建立反向索引:

  012  123  234  345  456  567

  2、按三字节对搜索的关键字进行切分,在全文索引中找出对应信息:

  例①:搜索关键字“文索”,用数字序号表示就是“2~5”,那么它将被切分成:

  234  345

  这样,就与全文索引对上了。

  例②:搜索关键字“x光机”,用数字序号表示就是“3~7”,那么它将被切分成:

  345  456  567

  这样,也与全文索引对上了。

  例③:搜索关键字“1台 光机”,用数字序号表示就是“0~2”和“4~7”,那么它将被切分成:

  012  456  567

  这样,多关键字搜索也与全文索引对上了。

  评论这张
 
阅读(253)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017