我在PHP中使用这样的查询方式来查找标题和内容的文章。
SELECT * FROM `db_table` WHERE MATCH(ptitle, pcontent) AGAINST ("+'.$search.'*" IN BOOLEAN MODE)
它工作得很好,但是当搜索以一个短词开头时,比如西班牙语文章('el','la'),我就会遇到问题。
例如,当我想在其他帖子中找到一个标题为 "El Perro "的帖子时,我做了以下搜索,结果是。
显然,当搜索以短词开始时,问题就会发生。我怎样才能解决这个问题?
在Full text中,一个词的长度有最小值。
默认情况下,长度小于3个字符或大于84个字符的词不会出现在InnoDB全文搜索索引中。最大和最小字长值可以使用innodb_ft_max_token_size和innodb_ft_min_token_size变量进行配置。
https:/dev.mysql.comdocrefman8.0enfulltext-stopwords.html)。
你可以修改sql.ini中的值来改变这个限制。
[mysqld]
ft_min_word_len = 3
默认值是4,上面会将其改为3,你可以用同样的方法改变ft_max_word_len。
[mysqld]
ft_max_word_len = 150