我有一个关于全文的查询,如果我使用两个单词,它似乎可以处理拼写错误,但如果我只使用一个单词,它就不会
我有一个带有全名字段的表
在表格“尼罗罗杰斯”,“班罗杰斯”,“凯瑟琳温罗杰斯”,“奈杰尔罗杰斯”
我的问题
SELECT *
FROM people
WHERE MATCH (fullname) AGAINST ('myquerytext' IN NATURAL LANGUAGE MODE)如果我搜索“罗杰斯”,我会找到“尼罗罗杰斯”
如果我搜索“罗杰斯”,我会找到“巴姆·罗杰斯”、“凯瑟琳·温·罗杰斯”、“奈杰尔·罗杰斯”,但不是“尼罗罗杰斯”。
如果我搜索“尼罗罗杰斯”,我会找到“尼罗罗杰斯”,“班罗杰斯”,“凯瑟琳·温·罗杰斯”,“奈杰尔·罗杰斯”
可以调整公差吗?
发布于 2018-09-13 00:01:15
你的问题是它搜索尼罗河或罗杰斯,所以你得到的结果是合乎逻辑的。
如果您想要所有单词而不是其中任何单词,请使用布尔模式,并在每个单词前面添加一个+:
SELECT *
FROM people
WHERE MATCH (fullname) AGAINST ('+Nile +Rogers' IN BOOLEAN MODE)12.9.2布尔全文搜索
在实现这一特性时,MySQL使用有时被称为隐含布尔逻辑的东西,其中
·+代表AND
·-代表NOT
·没有运算符表示OR
https://stackoverflow.com/questions/52298051
复制相似问题