【发布时间】:2016-04-08 20:41:35
【问题描述】:
我正在运行 MySQL 查询来搜索工作数据库。我正在使用 MATCH 和 AGAINST 来排序结果是相关的。 但是,我对为什么这两个查询返回不同的结果感到困惑:
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,因此实际上不可能按相关性排序?
我的数据库有这些测试工作:
|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