在我們的數據庫中,我們有一個表topics
與title
列在其中。這個列通常包含2或3個字的值,如:'寵物','愛','電影','流行音樂'...基於字符的Mysql全文搜索
現在,我必須執行一個搜索,給定個字符的最佳匹配。
我試圖BOOLEAN MODE
和WITH QUERY EXPANSION
但沒有那些回報,除非術語我提供匹配至少一個字與該列中的值的任何事情。
Mysql是否提供在字符庫上搜索的功能?
在我們的數據庫中,我們有一個表topics
與title
列在其中。這個列通常包含2或3個字的值,如:'寵物','愛','電影','流行音樂'...基於字符的Mysql全文搜索
現在,我必須執行一個搜索,給定個字符的最佳匹配。
我試圖BOOLEAN MODE
和WITH QUERY EXPANSION
但沒有那些回報,除非術語我提供匹配至少一個字與該列中的值的任何事情。
Mysql是否提供在字符庫上搜索的功能?
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服務並快速修復具有全文索引的表。