繁体   English   中英

MySQL布尔全文搜索

[英]MySQL Boolean Full-Text Searches

我目前正在为我的网站使用布尔全文搜索。 但是,此方法将忽略少于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;

控制它的变量是ft_min_word_len在此处记录 您将其设置为1,并且可能还会覆盖停用词列表。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM