首页 > 解决方案 > MySQL全文搜索 - 没有部分识别

问题描述

我正在尝试构建一个基于 mysql 的关键字搜索工具,我只能获得完整单词的结果,而我也想获得部分匹配的结果。

我的数据库结构如下所示: 在此处输入图像描述

我的数据库内容如下所示: 在此处输入图像描述

此查询有效: select * from chromext_keyword where matches (keyword) against ('Redmi')

但是这个不起作用(没有结果): select * from chromext_keyword where matches (keyword) against ('red')

我尝试使用 % 但它没有解决问题。我尝试了自然语言选项和布尔值,但没有帮助。

使用创建表查询更新: CREATE TABLE chromext_keywords( idint(10) NOT NULL, keywordtext NOT NULL, blacklisttext NOT NULL, categorytext NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

并插入: INSERT INTO chromext_keywords( id, keyword, blacklist, category) VALUES (1, 'Redmi Note 10', '9,8,pro', '2'), (2, 'Realme GT', '6,7,8,narzo' , '2');

我添加了全文: ALTER TABLE chromext_keywords ADD UNIQUE KEY id( id); ALTER TABLEchromext_keywords添加全文键keyword( keyword);

我也试过 innoDb 和 Myisam

我错过了什么吗?

谢谢

标签: mysqlfull-text-search

解决方案


您应该检查最小字长设置..

在mysql中,全文搜索的最小长度受参数限制

ft_min_word_len

并且默认值是单词> 3

查看相关文档

https://dev.mysql.com/doc/refman/8.0/en/fulltext-fine-tuning.html


推荐阅读