提问人:M1X 提问时间:10/30/2014 更新时间:7/29/2020 访问量:3727
全文搜索不适用于数字
Full Text Search not working with numbers
问:
我有这张表,上面有歌曲名称、艺术家等。
| id | artist | title | search_tags |
| 1 | miley cyrus | 23 | miley cyrus 23 |
这是我的查询:
select * from music where match(search_tags) against ('+$search_value*' IN BOOLEAN MODE)
当我搜索时它工作正常:但是当它没有显示任何结果时miley
search_tags = 23
注意:我在 Windows 10 上使用 MySQL 5.6 和 InnoDB,并且ft_min_word_len=1
答:
搜索“23”时将不起作用,因为键的长度很小。 默认情况下,MySQL 将键存储在全文索引中,最少为 4 个字符。您需要将其更改为 1 或 2 才能使查询正常工作。
您需要在这里做的是
将此行添加到 my.ini 文件
innodb_ft_min_token_size = 1
重启MySQL服务
服务器重新启动后,通过发出假的 ALTER 命令来重建表。
更改表 table_name ENGINE=INNODB;
再次运行查询,它应该可以:)
祝你好运
评论
ALTER TABLE table_name ENGINE=INNODB;
请注意,默认情况下ft_min_word_len为 4。令牌 500 的长度为 3。因此,它根本不会被索引。您必须做三 (3) 件事:
步骤01:打开mysql文件夹中的init文件 将此添加到\bin\mysql\mysql5.7.24
innodb_ft_min_token_size = 1
STEP 02 : 重启mysql
步骤03:重新索引模型表中的所有索引 您可以删除并添加 FULLTEXT 索引
评论