首页 > 数据库 > mysql教程 > 如何按相关性对 MySQL 全文搜索结果进行排序?

如何按相关性对 MySQL 全文搜索结果进行排序?

Patricia Arquette
发布: 2024-11-05 07:21:02
原创
380 人浏览过

How to Order MySQL Fulltext Search Results by Relevance?

如何按相关性对 MYSQL 全文搜索结果进行排名

问题:

我该如何按相关性对 MYSQL 全文搜索结果进行排序,确定完全匹配的优先级并按字母顺序对部分匹配进行排序?

答案:

要在 MYSQL 中执行全文搜索,请使用 MATCH(. ..) AGAINST(...) 构造而不是 LIKE 运算符。 MATCH(...) AGAINST(...) 返回每个结果的相关性分数,可用于按相关性对结果进行排序。

这是一个修改后的查询,它使用全文搜索并对结果进行排序相关性:

SELECT * FROM `vocabulary`
WHERE MATCH(`translation`) AGAINST ('word')
ORDER BY MATCH(`translation`) AGAINST ('word') DESC;
登录后复制

此查询将首先返回完全匹配的结果,然后按相关性降序排列部分匹配。

示例:

考虑以下词汇表:

id translation
1 word
2 crossword
3 words
4 wordsmith

使用搜索词“word”运行上述查询将返回以下按相关性排序的结果:

id translation
1 word
2 crossword
3 words
4 wordsmith

以上是如何按相关性对 MySQL 全文搜索结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板