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



我有一个关于全文的查询,如果我使用 2 个单词,它似乎可以拼写错误,但如果我只使用一个单词,则不会

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

在表格中"尼罗罗杰斯","巴姆罗杰斯","凯瑟琳温罗杰斯","奈杰尔罗杰斯">

我的查询

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

如果我搜索"罗杰斯",我找到了"尼罗罗杰斯">

如果我搜索"罗杰斯",我找到了"巴姆罗杰斯","凯瑟琳·温·罗杰斯","奈杰尔·罗杰斯",但不是"尼罗罗杰斯">

如果我搜索"尼罗罗杰斯",我喜欢"尼罗罗杰斯","巴姆罗杰斯","凯瑟琳温罗杰斯","奈杰尔罗杰斯">

是否可以调整公差?

你的问题是它搜索尼罗河罗杰斯,所以你得到的结果是合乎逻辑的。

如果你想要所有的单词而不是任何一个,请使用布尔模式并在每个单词前面添加一个+

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

12.9.2 布尔全文搜索

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

• + 代表 AND

• - 代表 NOT

• [无运算符] 表示 OR

官方文档

相关内容

最新更新