簡體   English   中英

為什么這2個MySQL查詢返回不同的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM