MySQL fulltext with stems

£可爱£侵袭症+ 提交于 2019-11-27 16:55:09

问题


I am building a little search function for my site. I am taking my user's query, stemming the keywords and then running a fulltext MySQL search against the stemmed keywords.

The problem is that MySQL is treating the stems as literal. Here is the process that is happening:

  1. user searches for a word like "baseballs"
  2. my stemming algorithm (Porter Stemmer) turns "baseballs" into "basebal"
  3. fulltext does not find anything matching "basebal", even though there SHOULD be matches for "baseball" and "baseballs"

How do I do the equivalent of LIKE 'basebal%' with fulltext?

EDIT:

Here is my current query:

SELECT MATCH (`title`,`body`) AGAINST ('basebal') AS `relevance`,`id` FROM `blogs` WHERE MATCH (`title`,`body`) AGAINST ('basebal') ORDER BY `relevance` DESC

回答1:


I think it will work with an asterisk at the end: basebal*. See the * operator on this page for more info.




回答2:


See This link.. Stemming is not installed BY default in MySQL but you can install it your self..

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



来源:https://stackoverflow.com/questions/2062101/mysql-fulltext-with-stems

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!