我有这个搜索查询:
SELECT id, MATCH(names) AGAINST('Tom Smith') AS score FROM content WHERE MATCH(names) AGAINST('Tom Smith') ORDER BY SCORE DESC
它返回246行,其中包含
'Tom Smith', 'Tom (any initial) Smith', 'Tom' or 'Smith'
。有没有一种方法可以让查询返回仅包含“ Tom Smith”,“ Tom T. Smith”,“ Tom Robert Smith”等行?
基本上,必须包含Tom AND Smith的行,而不是仅包含“ Tom”或“ smith”的行吗?
但是,我不仅希望只包含“ Tom Smith”的行,而且还包含“ Tom(任何单词)Smith”的行也可以。
我想这是可能的,但是,我很难获得也包含“汤姆(任何单词)史密斯”标准的结果。
最佳答案
有一天,我的大脑不能很好地工作:)忘记了布尔模式
SELECT id, MATCH(names) AGAINST('+Tom +Smith' IN BOOLEAN MODE ) AS score FROM content WHERE MATCH(names)
AGAINST('+Tom +Smith' IN BOOLEAN MODE ) ORDER BY SCORE DESC
关于mysql - Mysql全文搜索-如何要求所有搜索词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51619012/