我正在为我的网站构建一个小搜索功能。我正在接受用户的查询,截取关键字,然后根据词干关键字运行全文MySQL搜索。
问题在于MySQL将词干视为字面意思。以下是正在发生的过程:
如何使用全文来完成LIKE'basebal%'的等效操作?
编辑:
这是我当前的查询:
SELECT MATCH (`title`,`body`) AGAINST ('basebal') AS `relevance`,`id` FROM `blogs` WHERE MATCH (`title`,`body`) AGAINST ('basebal') ORDER BY `relevance` DESC
答案 0 :(得分:6)
我认为最终会使用星号:basebal*
。有关详细信息,请参阅this page上的*
运算符。
答案 1 :(得分:0)
请参阅此链接.Steming默认情况下不会安装在MySQL中,但您可以自行安装..
http://oksoft.blogspot.com/2009/05/stemming-words-in-mysql.html
答案 2 :(得分:0)
IN NATURAL LANGUAGE MODE
是默认模式,与词干不兼容。尝试使用通配符IN BOOLEAN MODE
...
SELECT MATCH (`title`, `body`) AGAINST ('basebal*' IN BOOLEAN MODE) AS `relevance`, `id` FROM `blogs` WHERE MATCH (`title`, `body`) AGAINST ('basebal*' IN BOOLEAN MODE) ORDER BY `relevance` DESC
上面的示例为人们在问了10年后才涉足这个问题提供了清晰的信息。主题仍然很重要,而且可以从完整的示例中受益?