在mysql中非常奇怪的错误。匹配搜索正在工作,但为了正确它不起作用

时间:2017-01-18 05:02:08

标签: php mysql

这个工作正常如果,我搜索右键没有给出任何结果。但是数据存在于数据库中

SELECT *
FROM tblcodes
WHERE MATCH(search_term) AGAINST('+left* +button* ' in BOOLEAN MODE) OR
      code LIKE '%left button%'

请提出任何建议

1 个答案:

答案 0 :(得分:1)

{em> right 一词包含在MyISAM fulltext stopword list中。这意味着它不会被添加到全文索引中,因为它被认为在英语文本中太常见,无法真正帮助识别内容。因此,您无法使用match against找到它(但您仍会使用like找到它。)

要更改该行为,您可以修改或禁用该列表:

  

要覆盖MyISAM表的默认禁用词列表,请设置ft_stopword_file系统变量。 (请参见第6.1.5节“服务器系统变量”。)变量值应该是包含禁用词列表的文件的路径名,或者是用于禁用禁用词过滤的空字符串。除非给出绝对路径名以指定其他目录,否则服务器将在数据目录中查找该文件。更改此变量的值或停用词文件的内容后,重新启动服务器并重建FULLTEXT索引。

你也可以切换到InnoDB,它使用一个更短的默认禁用词列表,虽然这可能只是转移问题,直到你找到例如