在使用MySQL全文搜索的布尔模式下,存在某些像+和-这样的字符被用作运算符。如果我搜索"C++"类似这样的东西,它会把+解释为运算符。如何处理这些特殊字符是最佳实践? 使用MySQL全文搜索的布尔模式时,有一些像+和-这样的特殊字符被用作运算符。如果搜索包含这些特殊字符的查询词,可能会影响查询结果。因此,有几种处理这些特殊字符的最佳实践: 1.使用转义字符:在查询字符前加上反斜杠(\),以将其视为普通字符,例如:SELECT * FROM table WHERE MATCH (column) AGAINST ('C\+\+' IN BOOLEAN MODE) 2.使用引号:将包含特殊字符的查询词用引号括起来,例如:SELECT * FROM table WHERE MATCH (column) AGAINST ('"C++"' IN BOOLEAN MODE) 3.禁用特殊字符:可以通过修改MySQL的配置文件禁用特殊字符,例如:将ft_min_word_len参数设置为0,禁用所有特殊字符。 在处理特殊字符时,应根据实际情况选择最合适的方法,以确保搜索结果的准确性和完整性。
我目前使用的方法是将数据中的所有+字符转换为_plus。它还将&,@,/和#字符转换为文本表示。