2011-01-06 67 views
5

我已經在3個字段的一小部分記錄上設置了一個全文索引(嘗試了3的組合並且結果相同),還有一些單詞返回的結果很好,但某些例如'house'和'australia'沒有(有趣的是,'澳大利亞'和'home')。MySQL全文搜索不能用於某些詞,比如'house'

這似乎是奇怪的行爲。如果我添加「WITH QUERY EXPANSION」,我會得到結果,但它們現在不是最相關的。

任何人都知道這是爲什麼?否則,我將不得不求助於使用LIKE搜索,並且我寧願將相關性包括在內。

回答

10

這可能是一個幾件事情:

  • 的MySQL有沒有包含在全文檢索「停止詞」的默認列表 - http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html。 'house'和'australia'似乎不在該列表中,但您搜索的其他詞語可能會受其影響。
  • 在數據庫中超過50%的行中出現的任何字或3個字母或更少的字也被視爲停用詞。如果您只是在只有幾行的桌子上測試全文搜索,則50%的東西特別容易被發現。

如果您在Google搜索「mysql stop words」會發現更多關於它的東西,因爲這是吸引很多人的東西之一。

+0

我相信這是正確的。我有*完全相同的問題*。 +1 – karim79 2011-01-06 08:26:17