MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大。MySQL针对这一问题提供 了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索。但是,至今为 止,MySQL对中文全文索引无法正确支持。
Mysqlcft 是为 MySQL 5.1.22 ~ 5.1.25 RC 开发的中文全文索引插件,用于解决MySQL无法正确支持中文全文检索的问题。
特点:
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倍。
相关推荐
mysql搜索引擎分类,及每种搜索引擎的简单分类和作用
搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构
一、MySQL中文全文索引插件mysqlcft的特点: 1、优点: ①、精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。...
飞猫精仿百度带蜘蛛php+mysql搜索引擎源码
基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计
mysql-存储引擎
冒死分享别人的搜索引擎技术,搜索引擎介绍.不错的资源,和大家分享.
一、MySQL中文全文索引插件mysqlcft的特点: 1、优点: ①、精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。...
基于Sphinx+MySql+Python的站内搜索引擎的设计与实现.pdf
6、制作一份MySQL Slave供搜索引擎使用 10 7、创建快捷启动、停止、重启、杀死MySQL进程的脚本(以db11的3306端口为例) 10 三、SPHINX配置: 11 1、生成Sphinx中文分词词库 11 ⑴、词典的构造 12 ⑵、词典文件格式 ...
PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释.docx
基于PHP的SEO最新算法橘色屋图库php+mysql 带搜索引擎排名优化.zip
本项目主要是学习利用全文检索引擎框架ElasticSearch实现一个中文旅游网站搜索设计,通过建立一个hotel的索引库关联对应的mysql表数据,实现高效率的查询,解决了传统关系型数据因为数据量大导致的查询瓶颈问题。...
本项目主要是学习利用全文检索引擎框架ElasticSearch实现一个中文旅游网站搜索设计,通过建立一个hotel的索引库关联对应的mysql表数据,实现高效率的查询,解决了传统关系型数据因为数据量大导致的查询瓶颈问题。...
基于PHP的SEO最新算法橘色屋图库php+mysql带搜索引擎排名优化源码.zip
PHP实例开发源码—SEO最新算法橘色屋图库php+mysql 带搜索引擎排名优化.zip
hibernate-search小例子,myeclipse工程文件,有jar包,只要有mysql和myeclipse就可以直接运行。文章在http://blog.csdn.net/hortond。对文件索引和数据库感兴趣的可以下来看看,lucene是个很强大的全文搜索引擎。
在此开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率,而且实现了更高质量的搜索,因为MySQL使用自然语言来智能地对结果评级,以去掉不相关的...
1.使用Mysql全文检索fulltext的先决条件 表的类型必须是MyISAM建立全文检索的字段类型必须是char,varchar,text2.建立全文检索先期配置由于Mysql的默认配置是索引的词的长度是4,所以要支持中文单字的话,首先更改这个...