2014-03-24 222 views
1

我正在使用帶有兩個字段(名稱和別名)的全文索引的MySQL數據庫。MySQL - 全文搜索

它是一個電子遊戲數據庫

codice:

SELECT name,MATCH (name,aliases) AGAINST ('inFamous: Second Son') AS relevance 
FROM games_search 
ORDER BY relevance DESC; 

與此查詢我得到如下結果

codice:

inFamous 2      9.150630950927734 
inFamous: Second Son   9.150630950927734 
inFamous      8.947185516357422 
inFamous: Festival of Blood 8.947185516357422 

爲什麼前兩次效果有相同的意義?

回答

0

MySQL中的全文搜索忽略了兩種類型的詞:停用詞和短語比某些詞短。

您可以閱讀停用詞列表here。你的情況特別感興趣的是'second'這個詞。

默認情況下,只有包含4個字符或更長字符的單詞纔會用於搜索目的。因此,'son'被忽略。所以,您的查詢相當於:

SELECT name, MATCH (name,aliases) AGAINST ('inFamous:') AS relevance 
FROM games_search 
ORDER BY relevance DESC; 

我不確定爲什麼這些比最後兩個更高。我推測相關性是將完美匹配(減去停用詞和短語)視爲略高於不完美匹配。