2015-02-12 148 views
0

在我們的數據庫中,我們有一個表topicstitle列在其中。這個列通常包含2或3個字的值,如:'寵物','愛','電影','流行音樂'...基於字符的Mysql全文搜索

現在,我必須執行一個搜索,給定個字符的最佳匹配。

我試圖BOOLEAN MODEWITH QUERY EXPANSION但沒有那些回報,除非術語我提供匹配至少一個與該列中的值的任何事情。

Mysql是否提供在字符庫上搜索的功能?

回答

4

MySQL的全文搜索功能具有不同的配置設置,可以更改爲解決此問題:

1)的ft_min_word_len: 這表明最小字長的mysql,同時準備全文索引應該考慮的問題。它的缺省值是3.所以默認情況下,mysql不能搜索長度小於3的任何單詞。如果你有這種情況,你可以在/etc/my.cnf(linux環境)中修改這個標誌。

2)停止世界列表: MySQL在建立停止世界名單全面測試搜索[http://dev.mysql.com/doc/refman/5.0/en/fulltext-stopwords.html]。 MySQL全文搜索永遠不會在全文索引中包含任何停止世界。您需要通過在/etc/my.cnf中(Linux環境)停止世界名錶設置爲新的列表覆蓋它

ft_stopword_file =「/ new_stop_word.txt」 請確保,MySQL的用戶可以訪問此文件。

一旦你做了更改,重新啓動mysql服務並快速修復具有全文索引的表。