全文搜索不使用数字

时间:2014-10-29 19:59:41

标签: mysql full-text-search

我有这个表有歌曲标题,艺术家等。

| 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)

我搜索时效果很好:mileysearch_tags = 23

时没有显示任何结果

注意:我在Windows 10上使用带有InnoDB的MySQL 5.6和ft_min_word_len=1

2 个答案:

答案 0 :(得分:3)

搜索" 23"将无法工作,因为密钥的长度很小。 默认情况下,MySQL在全文索引中存储密钥,最少4个字符。您需要将其更改为1或2才能使查询正常工作。

您需要做的是

  1. 将此行添加到my.ini文件

    innodb_ft_min_token_size = 1

  2. 重启MySQL服务

  3. 服务器恢复后,通过发出伪造的ALTER命令重建表。

    ALTER TABLE table_name ENGINE = INNODB;

  4. 再次运行查询,它应该有效:)

    祝你好运

答案 1 :(得分:0)

请注意,默认情况下ft_min_word_len为4。令牌500的长度为3。因此它根本不会被索引。您将必须做三(3)件事:

STEP 01:打开mysql文件夹中的init文件 将此添加到\ bin \ mysql \ mysql5.7.24

innodb_ft_min_token_size = 1

STEP 02:重新启动mysql

STEP 03:重新索引模型表中的所有索引 您可以删除并添加FULLTEXT索引