php - Mysql 匹配未按预期工作

标签 php mysql

我想对 mysql 结果进行相关性排序。

工作流程如下:

我用关键字Java、Php搜索简历

并编写查询来计算相关性。

$keyStr="Java PHP";  
简历表中的

res_idres_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

由于 $keyStrJava 开头,因此 relevance 设置为以 res_keyskills 开头使用Java

但我需要为具有 Java 或 Phpres_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 contain second word.

类似于:

SELECT *, match(res_keyskills) against ('+".$keyStr."') AS relevance FROM Resumes

Reference

关于php - Mysql 匹配未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179278/

相关文章:

php - 打印联合选择

php - 如何每天只插入一条记录?

PHP - 日期字符串转Mysql dateTime

php - 计算两个日期之间的天数而不重复

mysql - 为什么 SQL INSERT 查询将输入的值作为列名

php - PHP获取不带www和.com的域名

php - codeigniter 中组函数的使用无效

php - 创建存档并添加来自与特定类型匹配的特定路径的所有文件

mysql - 从具有重复值的表中返回所需结果的查询

php - Md5 mysql 行中的所有信息