MySQL中全文搜索详解介绍
2019/10/10/17:34:04 阅读:1884 来源:谷歌SEO算法 标签:
SEO优化
MySQL中的全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度.
语法,代码如下:
- MATCH(col1,col2,...)AGAINST(expr[search_modifier])
- search_modifier:{INBOOLEANMODE|WITHQUERYEXPANSION}
例如:SELECT * FROM tab_name WHERE MATCH (col1,col2) AGAINST (search_word);
这里的table需要是MyISAM类型的表,col1、col2需要是char、varchar或text类型,在查询之前需要在col1和col2上建立一个全文索引.
1.使用Mysql全文检索fulltext的先决条件.
表的类型必须是MyISAM,建立全文检索的字段类型必须是char,varchar,text.
2.建立全文检索先期配置
由于Mysql的默认配置是索引的词的长度是4,所以要支持中文单字的话,首先更改这个.*Unix用户要修改my.cnf,一般此文件在/etc/my.cnf,如果没有找到,先查找一下find / -name 'my.cnf'
在 [mysqld] 位置内加入::ft_min_word_len = 2
其它属性还有:
- ft_wordlist_charset=gbk
- ft_wordlist_file=/home/soft/mysql/share/mysql/wordlist-gbk.txt
- ft_stopword_file=/home/soft/mysql/share/mysql/stopwords-gbk.txt
稍微解释一下:
ft_wordlist_charset 表示词典的字符集, 目前支持良好的有(UTF-8, gbk, gb2312, big5)
ft_wordlist_file 是词表文件, 每行包括一个词及其词频(用若干制表符或空格分开,消岐专用)
ft_stopword_file 表示过滤掉不索引的词表, 一行一个.
ft_min_word_len 加入索引的词的最小长度, 缺省是 4, 为了支持中文单字故改为 2
热门评论