我正在为我的站点构建一个小的搜索功能。我正在接受用户的查询,提取关键字,然后针对提取的关键字运行全文 MySQL 搜索。
问题在于 MySQL 将词干视为文字。这是正在发生的过程:
- 用户搜索“棒球”之类的词
- 我的词干提取算法 (Porter Stemmer) 将“baseballs”变成了“basebal”
- 全文没有找到任何匹配“basebal”的内容,即使应该有“baseball”和“baseballs”的匹配项
如何对全文执行 LIKE 'basebal%' 的等效操作?
编辑:
这是我当前的查询:
SELECT MATCH (`title`,`body`) AGAINST ('basebal') AS `relevance`,`id` FROM `blogs` WHERE MATCH (`title`,`body`) AGAINST ('basebal') ORDER BY `relevance` DESC
最佳答案
我认为它可以在末尾使用星号:basebal*
。请参阅 this page 上的 *
运算符了解更多信息。
关于带词干的 MySQL 全文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062101/