首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MySQL Match()未找到最佳匹配

MySQL Match()未找到最佳匹配
EN

Stack Overflow用户
提问于 2011-03-07 05:44:01
回答 2查看 630关注 0票数 2

我有一个职业头衔的数据库,我正在尝试运行一些查询。我使用Match()尝试使用下面的SQL为用户输入的字符串找到最匹配的职业头衔:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT *, MATCH (occupation_title) AGAINST ('EGG PROCESSOR') 
AS score FROM occupational_titles WHERE MATCH (occupation_title) 
AGAINST ('EGG PROCESSOR') ORDER BY score DESC;

当我对我的数据库运行这个查询时,前三个结果是"Processor“、"Egg Processor”和"COPRA Processor“。前两个的匹配分数完全相同,为6.04861688613892。为什么MySQL不会把精确匹配的结果排在第一位呢?我能做些什么来改进搜索算法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-07 06:05:39

您可能希望在搜索中使用其中一种修改器模式。检查fulltext documentation

特别是,在默认情况下,它使用“自然语言”搜索,而您可能想要考虑“布尔模式”,并在每个关键字前加上加号,以使其在结果中是强制的,或者使用双引号来搜索确切的短语。有关语法的详细信息,请参阅Check the boolean mode documentation

您还可以考虑使用各种模式执行多个搜索,并进行自己的加权。

票数 0
EN

Stack Overflow用户

发布于 2011-03-07 05:58:18

我想您应该将列的排序规则更改为不区分大小写。例如:latin1到latin1_bin

正在对您的案例执行区分大小写的匹配。看看这里:http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html

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

https://stackoverflow.com/questions/5216268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文