2012-06-18 116 views
1

我正在尝试在我的表格中搜索某些手机,并试图通过全文搜索来获取结果。我的查询是:MySQL全文搜索结果相关性

SELECT id,itemid,title,MATCH(title) AGAINST 
    ("SAMSUNG GALAXY S3" IN NATURAL LANGUAGE MODE) as score 
    FROM `deals`WHERE MATCH(title) AGAINST 
    ("SAMSUNG GALAXY S3" IN NATURAL LANGUAGE MODE) ORDER BY score desc; 

结果我得到如下所示的图像:

Search Result

我所期望的是第二个结果拿出之上,因为它是精确匹配,但它不是。有人可以请我纠正我在这里可能做错了什么。

谢谢。

编辑结果布尔模式 Results in boolean mode

+0

结果是什么['IN BOOLEAN MODE' ](http://dev.mysql.com/doc/refman//5.5/en/fulltext-boolean.html)? – bpgergo

+0

@bpgergo - 结果如下 - http://imgur.com/xhIbl。 –

回答

1

恐怕“S3”太短令牌被认为是由全文本搜索的词。 见(4个字符的默认最小字长)的文档的相关章节http://dev.mysql.com/doc/refman//5.5/en/server-system-variables.html#sysvar_ft_min_word_len

编辑您可以通过搜索如验证这一点:

"SAMSUNG GALAXY S360" 
+0

是的,当我搜索诸如“三星Galaxy SIII”之类的东西时,它可以工作。非常感谢帮助我。似乎我需要找到解决这类搜索的方法。非常感谢! –

+0

我认为你可以在'ft_min_word_len'中设置2,这应该适用于“”SAMSUNG GALAXY S3“ – bpgergo

+0

在这种情况下,我将不得不重建索引,检查这是否有帮助。 –