我目前正在使用布尔全文搜索我的网站。但是,此方法将忽略少于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;
答案 0 :(得分:1)
控制此变量的变量为ft_min_word_len
,记录为here。您可以将其设置为1,也可能会覆盖停用词列表。
注意三件事。重置后,您需要重建索引。其次,如果您已经处理了两个字符的单词,则此值已从默认值更改。还有三个,还有一个停用词列表,它也会过滤掉索引中的术语。