26

MySQL全文检索中不进行全文索引默认过滤词表(ft_stopword_file =>ft_precompiled_stopwords)

MySQL支持全文索引和全文检索功能。 (详细的MySQL全文检索的介绍请见官方手册)
对于全文索引,MySQL会从 ft_stopword_file 变量指定的文件中读取不进行全文索引的过滤词表, 一行一个。若将该变量设置为空字符串(”)则禁用过滤词表。
此变量默认为built-in,即MySQL使用自建默认过滤词表,查看MySQL4到MySQL6的源码,不同版本的默认词表是一样的,共545个

继续阅读全文

十一 24

MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档

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

  中文与西方文字如英文的一个重要区别在于,西方文字以单词为单位,单词与单词之间以空格分隔。而中文以字为单位,词由一个或多个字组成,词与词之间没有空格分隔。当试图在一个含有中文字符的字段中使用全文搜索时,不会得到正确的结果,原因在于中文中没有像英文空格那样对词定界,不能以空格作为分割,对中文词语进行索引。

继续阅读全文

十一 24

Mysqlcft中文全文索引插件

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

继续阅读全文