MySQL全文索引 Fulltext

讨论地址: http://www.minioa.net/viewtopic.php?f=24&t=259
搜索记录时,我们经常会用到like,然而这样的效率很低。
后来有人推荐可以使用regexp,
这里,我们要介绍的是Fulltext
首先,要确保你的MySQL版本足够的新,比如我用的是MySQL5.5。
系统变量ft_min_word_len默认是4,为了能够支持搜索汉字,所以,我们要设置成2。修改后重新启动MySQL。

如果你遇到错误ERROR 1193 (HY000): Unknown system variable 'ft_min_word_len',说明你的MySQL版本可能太低了。建议升级,MySQL5.5下载地址:
http://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-5.5.15.0.msi/from/http://ftp.jaist.ac.jp/pub/mysql/

创建索引
alter table articles add fulltext index(title,body);

查看索引
show index from articles;

删除索引
drop index title from articles;

使用索引
select title,match(title,body) against('中国' in boolean mode) from articles;

非常遗憾的是,中文支持的不是很好,不能检索到所有的记录。例如检索中国,有的包含中国的记录能够显示,但是有的却不显示,如果修改记录,将中国前后两个字用空格隔开,就可以检索得到。此外,还可以设置成 against('*中国*' in boolean mode)

你可能感兴趣的:(跟我一起学MiniOA)