mysql - MySQL全文搜索 - 没有部分识别
问题描述
我正在尝试构建一个基于 mysql 的关键字搜索工具,我只能获得完整单词的结果,而我也想获得部分匹配的结果。
此查询有效: select * from chromext_keyword where matches (keyword) against ('Redmi')
但是这个不起作用(没有结果): select * from chromext_keyword where matches (keyword) against ('red')
我尝试使用 % 但它没有解决问题。我尝试了自然语言选项和布尔值,但没有帮助。
使用创建表查询更新: CREATE TABLE chromext_keywords
(
id
int(10) NOT NULL,
keyword
text NOT NULL,
blacklist
text NOT NULL,
category
text 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
我错过了什么吗?
谢谢
解决方案
您应该检查最小字长设置..
在mysql中,全文搜索的最小长度受参数限制
ft_min_word_len
并且默认值是单词> 3
查看相关文档
https://dev.mysql.com/doc/refman/8.0/en/fulltext-fine-tuning.html
推荐阅读
- java - 如何填充动态 XFA 表单(itext 7)的动态内容?
- generics - Kotlin:通用变量
- r - 运行 r 脚本后退出命令提示符
- firebase - 需要存储在 Google Database 中的 python 文件在 Google Cloud Engine 中编译并将数据返回到 IOS 应用程序
- laravel - Laravel where 行为异常
- java - 如何在 React 中跟踪用户?
- php - Laravel 5.7 当我转储它时,我的参数返回的模型为空
- wordpress - 如何启用 ZipArchive 错误:导出滑块文件格式错误!这可能是因为未启用 ZipArchive 扩展
- c# - 用通用扩展方法替换继承
- jetty-9 - Jetty 9.4 JSESSIONID 在会话超时时未刷新