在我们的数据库中,我们有一个表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服务并快速修复具有全文索引的表。