2015-02-12 114 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服务并快速修复具有全文索引的表。