mysqlcft 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
mysqlcft 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
mysqlcft 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
mysqlcft 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
mysqlcft 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

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倍。

展开阅读全文

评论 (2)

加载中
打分: 推荐
如果是Java 的话 基本上会使用到 lucene 这个真心没用过 先mark一下
2017/03/24 09:40
回复
举报
好用么? #mysqlcft#
2016/03/17 10:54
回复
举报
更多评论
暂无内容
发表了博客
2013/08/23 13:01

MySQL中文索引插件mysqlcft安装及使用

MySQL中文索引插件mysqlcft安装及使用 1.MySQL必须是动态编译安装的,以便加载动态链接库。 2.编辑MySQL配置文件my.cnf,在[mysqld]段中加入ft_min_word_len=1(意为最小词所占字节数) 3.安装mysqlcft中文全文索引插件 从命令行登入MySQL服务器 查看MySQL插件目录 Show variables like ‘plugin_dir’; 下载mysqlcft中文索引插件,解压后复制mysqlcft.so文件到MySQL的插件目录下 https://code.google.com/p/mysqlcft 有32位与6...

0
10
发表了博客
2012/11/22 22:38

mysql中文全文索引

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

0
4
2017/10/24 14:32

sql使用索引为什么查询速度变快很多

以前只知道mysql使用索引可以使查询速度加快很多,不知道其中原理,一不小心被问住了,后来查资料才知道所以然,发现自己知道的太少了,惭愧!!然后只有默默的记录下来(看了一篇大神的文章) 首先来看看表是否有索引的命令: show index from (表); 就会看到索引主键: 看到主键索引,索引类型是BTREE(二叉树) 正是因为这个二叉树算法,让查询速度快很多,二叉树的原理,就是取最中间的一个数,然后把大于这个数的往右边排,小...

0
0
发表了博客
2018/01/03 13:40

Mysql几种索引类型的区别及适用情况

如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyISAM引擎支持。其可以在 CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE INDEX创建FULLTEXT索引,要比先...

0
0
发表于数据库专区
2018/10/15 17:33

Mysql几种索引类型的区别及适用情况

如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE INDEX创建FULLTEXT索引,要比先为...

0
0
发表于开发技能专区
2014/08/28 16:31

mysql优化概述(范式.索引.定位慢查询)

提升网页的显示速度的方式有很多,网站访问速度慢的主要原因是操作了数据库,或者是大并发。 解决方案也是多式多样,比如,页面静态化,使用memcache或者redis,将安全性要求不高,却访问平凡的数据可以存放到内存数据库中. 但是一个网站总是要操作数据库的,所以提高sql语句的CRUD效率也是必须要做的工作. 常用的方法 创建的表结构要满足三范式 创建适当的索引[主键索引|唯一索引|全文索引|普通索引|空间索引|fulltext] 优化sql...

0
0
发表于开发技能专区
2014/11/17 15:14

Mysql 索引

什么是索引 索引时一种特殊的文件,他们包涵着对数据表里所有记录的引用指针。 当对数据表记录进行更新后,都会对索引进行刷新。 索引会占用相当大的空间,应该只为经常查询和最经常排序的数据列建立索引。 索引类型 ①普通索引:这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建: I.创建索引 例如:CREATE INDEX <索引的名字> ON tablename (列的列表); II.修改表 例如:ALTER TABLE t...

1
26
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2014/01/13 17:59

mysqlcft 建索引时 导致连接中断

@张宴 你好,想跟你请教个问题: 服务器centos5.8 X64,mysql 5.6.14 X64, 安装mysqlcft成功, 但是在"ALTER TABLE .....ADD FULLTEXT INDEX ...WITH PARSER mysqlcft "这一步时,总是报错 “ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect..." 其他操作正常, 去掉最后面”WITH PARSER mysqlcft“ 也执行成功, 这个问题应该怎么处理?...

1
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2 评论
160 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部