MySQL布尔全文搜索

时间:2015-01-25 15:25:18

标签: php mysql

我目前正在使用布尔全文搜索我的网站。但是,此方法将忽略少于2个字符的单词。

示例:

标题:iphone 4上次销售

$raw_results = mysqli_query($conn,"SELECT * FROM memberpost WHERE MATCH(title) AGAINST('4' IN BOOLEAN MODE )") or die("no result found");

如果我在搜索框中键入:'4',则不会返回任何结果。

即使是1个字符,我怎样才能使这个工作?

由于

通过在my.ini文件中添加[mysqld]解决,重新启动mysql服务。

innodb_ft_min_token_size = 1
innodb_ft_enable_stopword = OFF
ft_min_word_len = 1
ft_stopword_file = ''

然后运行此查询以修复表:

ALTER TABLE table_name FORCE;

1 个答案:

答案 0 :(得分:1)

控制此变量的变量为ft_min_word_len,记录为here。您可以将其设置为1,也可能会覆盖停用词列表。

注意三件事。重置后,您需要重建索引。其次,如果您已经处理了两个字符的单词,则此值已从默认值更改。还有三个,还有一个停用词列表,它也会过滤掉索引中的术语。