在 MySQL 全文搜索中实现相关性优先
跨多个字段进行全文搜索时,MySQL 为每个字段中找到的匹配项分配相同的相关性。但是,在某些情况下,可能需要对某些字段进行优先级排序,以确保它们对整体相关性分数的贡献更大。
解决方案:创建加权索引
要实现这一点,创建多个全文索引:
具有加权相关性的示例查询
使用 MATCH(关键字)反对 (... ) 和 MATCH (content) AGAINST (...) 函数,您可以计算每个字段的单独相关性分数。 CASE 语句分配二进制值来指示特定字段是否包含搜索词:
SELECT *, CASE WHEN Keywords LIKE '%watermelon%' THEN 1 ELSE 0 END AS keywordmatch, CASE WHEN Content LIKE '%watermelon%' THEN 1 ELSE 0 END AS contentmatch,
以上是如何确定 MySQL 全文搜索中不同字段的相关性优先级?的详细内容。更多信息请关注PHP中文网其他相关文章!