我想对 mysql 结果进行相关性排序。
工作流程如下:
我用关键字Java、Php
搜索简历
并编写查询来计算相关性。
$keyStr="Java PHP";
简历表中的res_id
和res_keyskills
看起来像
1 Java,PHP
2 PHP,Java
3 Javascript, Java
4 Java
5 PHP
6 Python
7 PHP, C
等等
SELECT *, match(res_keyskills) against ('".$keyStr."') AS relevance FROM Resumes
目前,我得到的 res_id
1, 3, 4 的相关性大于 0
但预期结果是 res_id
1,2 3, 4,5,7 的相关性大于 0
由于 $keyStr
以 Java
开头,因此 relevance
设置为以 res_keyskills
开头使用Java
。
但我需要为具有 Java 或 Php
的 res_keyskills
设置相关性
。
为此,我应该在查询中进行哪些更改,或者应该更改输入字符串格式(当前由空格分隔)
最佳答案
您在查询中指定无运算符
。当你这样做时,你是在说:
Find rows that contain at least one of the two words.
而是尝试指定 +
运算符并尝试。这意味着:
Find rows that contain the
first word
, but rank rows higher if they also containsecond word
.
类似于:
SELECT *, match(res_keyskills) against ('+".$keyStr."') AS relevance FROM Resumes
关于php - Mysql 匹配未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179278/