2012-06-18 140 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

在這種情況下,我將不得不重建索引,檢查這是否有幫助。 –