为什么这两个MySQL查询返回不同的结果
我正在运行一个MySQL查询来搜索数据库中的作业。我正在使用匹配和反对,以便能够排序结果的相关性。 但是,我不明白为什么这两个查询返回不同的结果:为什么这两个MySQL查询返回不同的结果,mysql,Mysql,我正在运行一个MySQL查询来搜索数据库中的作业。我正在使用匹配和反对,以便能够排序结果的相关性。 但是,我不明白为什么这两个查询返回不同的结果: SELECT SQL_CALC_FOUND_ROWS *, MATCH (`title`) AGAINST ("assistant") AS Relevance FROM jobs2 WHERE MATCH (`title`)
SELECT SQL_CALC_FOUND_ROWS *, MATCH (`title`)
AGAINST ("assistant")
AS Relevance
FROM jobs2
WHERE MATCH (`title`)
AGAINST ("assistant") AND date >= CURDATE() - INTERVAL 28 DAY GROUP BY jobref ORDER BY Relevance DESC LIMIT 0,50
据我所知,它将默认为自然语言模式,但返回0个结果,而:
SELECT SQL_CALC_FOUND_ROWS *, MATCH (`title`)
AGAINST ("assistant" IN BOOLEAN MODE)
AS Relevance
FROM jobs2
WHERE MATCH (`title`)
AGAINST ("assistant" IN BOOLEAN MODE) AND date >= CURDATE() - INTERVAL 28 DAY GROUP BY jobref ORDER BY Relevance DESC LIMIT 0,50
按预期返回4个结果,但相关性始终为1,因此实际上不可能按相关性排序
my DB有以下测试任务:
|date |title |jobref|
|2016-04-08 07:21:19|Assistant Management Accountant |12345 |
|2016-04-08 07:21:19|Assistant Accountant |12346 |
|2016-04-08 07:19:15|Assistant Finance Manager |12347 |
|2016-04-08 07:20:38|Accounts Assistant / Purchase Ledger Clerk / Accounts Payable |12348 |
基本上,为什么自然语言模式返回0个结果?来自MySQL自然语言搜索文档: 此外,在50%或更多行中出现的单词是 被认为是普通的,不匹配
看起来您的样本数据超过了50%的匹配率。啊,谢谢您-我想没有办法解决这个问题?