【MySQL】全文索引(FULLTEXT)的使用

【MySQL】全文索引(FULLTEXT)的使用
最新回答
梦他

2023-04-12 02:45:23

全文索引与一般索引有所不同,在搜索效率上,全文索引相较于普通模糊查询(LIKE)能提高N倍,它是MySQL为搜索引擎专门提供的功能。

在MySQL 5.6之前的版本中,只有MyISAM存储引擎支持全文索引。然而,从5.6版本开始,InnoDB和MyISAM都支持全文索引。此外,只有字段类型为char、varchar、text及其变体才能创建全文索引。

MySQL 5.6之后版本引入了ngram解析器,该解析器能够解析中日韩三国文字。如果不使用ngram解析器,MySQL默认会使用空格与符号作为分隔符。对于英文来说这已足够,但对于中日韩文字则不够用,因此需要ngram解析器。

开始使用全文索引的步骤如下:

1:创建索引

可以使用可视化工具轻松创建索引。

2:查询语句

全文索引有特定的查询语法:match(字段) against(关键字)

3:为了提高搜索效果,通常需要配置最小搜索长度

全文索引的相关参数无法动态修改,必须通过修改MySQL的配置文件来实现。通常,将最小搜索长度的值设置为2。首先打开MySQL的配置文件(MySQL 8.0的配置文件为:my.ini),在[mysqld]部分下面追加以下内容:

查看该变量的语法:

配置完参数后,重启MySQL服务器。在此示例中,我使用了最直接的方法——直接重启电脑。然后删除原有的索引,并重新创建。

注意,修改完参数后,一定要重启电脑(或重启MySQL)并重新创建(或修复)索引,否则参数不会生效。

全文索引支持三种搜索模式:

1:自然语言模式(IN NATURAL LANGUAGE MODE,默认模式)

2:布尔搜索模式(IN BOOLEAN MODE)

3:查询扩展搜索

查询扩展搜索较少使用,具体细节未深入了解。