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

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

Patricia Arquette
Patricia Arquette原创
2024-11-05 07:21:02346浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn