Mysql没有排名结果,全文

时间:2014-12-14 17:09:24

标签: mysql

我已经设置了一个数据库并启用了全文搜索,我在数据库中有一些条目,其中包含单词' test'还有一个“测试更多”的人当我用下面的搜索数据库时:

SELECT keywords, title FROM database WHERE Match(keywords) Against ('more test')

我期待它能够对那些已经测试更多的条目进行排名'在刚刚进行了测试的那个之上在它。

我做错了吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您从未指定必须对结果进行排序,您只需对必须匹配的结果设置附加约束。

您可以使用以下查询解决此问题:

SELECT keywords, title,
    MATCH (keywords) AGAINST ('more test') AS relevance
FROM database
WHERE MATCH (keywords) AGAINST ('more test')
ORDER BY relevance DESC

正如@GordonLinoff所提到的,您可能需要通过将stopwords.txt变量设置为空字符串''来禁用停用词过滤器;但请记住恢复它的原始值。

答案 1 :(得分:0)

默认情况下,MySQL会从文本搜索中删除某些单词。这些被称为"停用词"他们不在索引中。你可以阅读它们here。单词" more"和#34;一些"是止词的例子。

您可以提供自己的停用词列表,但必须重新创建索引。