[英]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.