2009-10-18 33 views
10

我正在嘗試使用三個字母或更少的字母來搜索我的全文搜索(以布爾模式)。MySQL全文搜索帶三個或更少字母的單詞

目前,如果我搜索「NBA」之類的東西,我沒有得到任何結果。

但是,如果我將通配符運算符「*」附加到搜索詞,我會得到結果。

我還讀到,您可以刪除my.ini中的三個字限制,但我想知道是否有更好的方法可以在飛行中執行此操作。

回答

16

手冊的這部分可能感興趣:11.8.6. Fine-Tuning MySQL Full-Text Search(引用它的一部分)

的最小和的 話要被索引由 ft_min_word_lenft_max_word_len 定義最大長度系統變量。 默認的最小值是四個 個字符;默認最大值爲 版本相關。如果您更改了 這兩個值,則必須重建您的 FULLTEXT索引。
例如,如果您 想三個字符的話是 搜索,您可以通過將 以下行的選項文件中設置 ft_min_word_len變量:

[mysqld] 
ft_min_word_len=3 

然後,你必須重新啓動服務器和 重建你的FULLTEXT索引。

(你應該閱讀該網頁,以獲取更多的信息我沒有複製粘貼;-))

+0

感謝帕斯卡, 我已經讀同一個,這個想法我是做它帶有一個PHP函數,用於檢查搜索短語的長度,並附加通配符*修飾符,如果它小於ft_min_word_len 想知道是否有更好的方法去解決這個問題... – 2009-10-18 18:30:07

+0

哦,對不起,沒有明白 ;;我對此沒有太多的想法...雖然;但不確定這是否是好的表現。就像一個旁註:如何使用外部索引/搜索引擎,如solr或sphinx? – 2009-10-18 18:32:49

+0

謝謝, 我聽說過獅身人面像,但還沒有時間圍繞它來包裹我的頭,它會很快研究它 – 2009-10-18 19:13:57