首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带茎的MySQL全文

带茎的MySQL全文
EN

Stack Overflow用户
提问于 2010-01-14 04:11:37
回答 3查看 4.3K关注 0票数 4

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

问题是,MySQL将茎视为文字。下面是正在发生的过程:

  1. 用户搜索像“棒球”这样的单词。
  2. 我的词干算法(Porter Stemmer)把“棒球”变成了“棒球”。
  3. 全文找不到任何匹配的“棒球”,即使应该有“棒球”和“棒球”的比赛。

如何对全文进行类似于“basebal%”的操作?

编辑:

下面是我当前的查询:

代码语言:javascript
复制
SELECT MATCH (`title`,`body`) AGAINST ('basebal') AS `relevance`,`id` FROM `blogs` WHERE MATCH (`title`,`body`) AGAINST ('basebal') ORDER BY `relevance` DESC
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-14 04:16:05

我认为它会在结尾处使用星号:basebal*。有关更多信息,请参见此页上的此页运算符。

票数 6
EN

Stack Overflow用户

发布于 2012-07-16 11:12:30

看这个链接..。默认情况下,MySQL中没有安装词干,但是您可以自己安装它。

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

票数 0
EN

Stack Overflow用户

发布于 2020-05-01 14:19:36

IN NATURAL LANGUAGE MODE是默认模式,与词干不兼容。试试IN BOOLEAN MODE和通配符..。

代码语言:javascript
复制
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年后跌跌撞撞地回答这个问题提供了清晰的说明。主题仍然是相关的,并且受益于完整的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2062101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档