首页  >  文章  >  数据库  >  如何提高 MySQL 全文搜索中特定字段的相关性?

如何提高 MySQL 全文搜索中特定字段的相关性?

Susan Sarandon
Susan Sarandon原创
2024-11-07 03:02:03472浏览

How to Boost Relevance in MySQL Fulltext Search for Specific Fields?

如何增强特定字段的 MySQL 全文搜索相关性

假设您有一个包含两列的数据库:关键字和内容。您已经创建了涵盖这两列的全文索引。但是,您希望将关键字列中包含特定单词的行优先于内容列中包含相同单词的行。

解决方案:

创建三个全文索引:

  1. 仅在关键字列上建立索引
  2. 仅在内容列上建立索引
  3. 在关键字和内容列上都建立索引

然后,修改您的查询如下:

SELECT id, keyword, content,
  MATCH (keyword) AGAINST ('watermelon') AS rel1,
  MATCH (content) AGAINST ('watermelon') AS rel2
FROM table
WHERE MATCH (keyword,content) AGAINST ('watermelon')
ORDER BY (rel1*1.5)+(rel2) DESC

说明:

  • rel1 和 rel2 分别计算您的查询在关键字和内容列中的相关性。
  • 通过将 rel1 乘以 1.5,可以为关键字赋予更高的权重。
  • WHERE 子句仍然使用关键字和内容的复合索引来确保返回结果。
  • 此技术允许您控制召回率(返回什么结果)和相关性(如何确定匹配的优先级),从而更加突出特定字段。

以上是如何提高 MySQL 全文搜索中特定字段的相关性?的详细内容。更多信息请关注PHP中文网其他相关文章!

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