我正在使用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 :(得分:0)
MySQL中的全文搜索忽略了两种类型的单词:停止单词和短于某些阈值的单词。
您可以阅读停用词列表here。您的案例中特别感兴趣的是单词'second'
。
默认情况下,仅保留4个字符或更长字符的单词用于搜索目的。因此,忽略'son'
。因此,您的查询等同于:
SELECT name, MATCH (name,aliases) AGAINST ('inFamous:') AS relevance
FROM games_search
ORDER BY relevance DESC;
我不确定为什么这些比最后两个更高。我推测相关性是将完美匹配(减去停止词和短词)视为略高于不完美匹配。