[英]Why do these 2 MySQL queries return different results
我正在運行一個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文檔進行自然語言搜索:
另外,出現在50%或更多行中的單詞被認為是通用的,並且不匹配。
http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
您的樣本數據似乎超過了50%的匹配率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.