MySQL全文搜索找不到单个拼写错误

时间:2018-09-12 14:51:43

标签: mysql sql

我有一个全文查询,如果我使用2个单词,似乎可以解决拼写错误,但是如果我只使用一个单词,则无法解决

我有一个带有全名字段的表

在表格“ Nile Rodgers”,“ Bam Rogers”,“ Catherine Wyn Rogers”,“ Nigel Rogers”中

我的查询

SELECT *
FROM people
WHERE MATCH (fullname) AGAINST ('myquerytext' IN NATURAL LANGUAGE MODE)

如果我搜索“ Rodgers”,我会发现“ Nile Rodgers”

如果我搜索“ Rogers”,我会发现“ Bam Rogers”,“ Catherine Wyn Rogers”,“ Nigel Rogers”,而不是“ Nile Rodgers”

如果我搜索“尼罗河罗杰斯”,我会喜欢“尼罗河罗杰斯”,“班·罗杰斯”,“凯瑟琳·温·罗杰斯”,“奈杰尔·罗杰斯”

是否可以调整公差?

1 个答案:

答案 0 :(得分:0)

您的问题是它会搜索 Nile Rogers ,因此您得到的结果是合乎逻辑的。

如果要使用所有单词而不是其中的任何单词,请使用 BOOLEAN MODE (布尔模式)并在每个单词前面添加一个+

SELECT *
FROM people
WHERE MATCH (fullname) AGAINST ('+Nile +Rogers' IN BOOLEAN MODE)
  

12.9.2布尔型全文本搜索

     

在实现此功能时,MySQL使用有时称为的功能   作为隐含的布尔逻辑,其中

     

•+代表AND

     

•-代表NOT

     

•[no operator]表示OR

Offcial doc