我有一个关于全文的查询,如果我使用 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
官方文档