我正在为我的网站构建一个小搜索功能。我正在接受用户的查询,提取关键字,然后针对提取的关键字运行全文 MySQL 搜索。

问题在于 MySQL 将词干视为文字。这是正在发生的过程:

  1. 用户搜索“棒球”等词
  2. 我的词干算法(Porter Stemmer)将“棒球”变成“棒球”
  3. 全文找不到任何匹配“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*. 。请参阅 * 操作符开启 这一页 了解更多信息。

其他提示

请参阅此链接..MySQL 中默认未安装 Stemming,但您可以自行安装。

http://oksoft.blogspot.com/2009/05/stemming-words-in-mysql.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top