MySQL - 全文搜索

时间:2014-03-24 10:37:59

标签: mysql full-text-search

我正在使用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

为什么前两个结果具有相同的相关性?

1 个答案:

答案 0 :(得分:0)

MySQL中的全文搜索忽略了两种类型的单词:停止单词和短于某些阈值的单词。

您可以阅读停用词列表here。您的案例中特别感兴趣的是单词'second'

默认情况下,仅保留4个字符或更长字符的单词用于搜索目的。因此,忽略'son'。因此,您的查询等同于:

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

我不确定为什么这些比最后两个更高。我推测相关性是将完美匹配(减去停止词和短词)视为略高于不完美匹配。