Mysql全文搜索基于字符

时间:2015-02-12 02:43:43

标签: mysql fulltext-index

在我们的数据库中,我们有一个表topics,其中包含title列。此列通常包含带有2或3个单词的值,例如:' pet',' love',' film',' pop music'。 ..

现在,我必须针对此字段执行搜索,该字段应返回给定字符的最佳匹配。

我已尝试BOOLEAN MODEWITH QUERY EXPANSION,但除非我提供的字词与列中的值匹配至少一个,否则这些内容都不会返回任何内容。

Mysql是否提供了搜索字符库的功能?

1 个答案:

答案 0 :(得分:4)

MySQL全文搜索有各种配置设置,可以更改这些设置来解决此问题:

1)ft_min_word_len:      这表示mysql在准备全文索引时应考虑的最小字长。它的默认值是3.所以默认情况下mysql不能搜索长度小于3的任何单词。如果你有任何这种情况,你可以在/etc/my.cnf(linux environment)中修改这个标志。

2)停止世界名单:     MySQL已经在构建停止世界列表中进行完整的测试搜索[http://dev.mysql.com/doc/refman/5.0/en/fulltext-stopwords.html]。 MySQL全文搜索从不包括全文索引中的任何停止世界。您需要通过在/etc/my.cnf(linux环境)中将stop world list设置为新列表来覆盖它

ft_stopword_file =" /new_stop_word.txt" 请确保,mysql用户可以访问此文件。

进行更改后,重新启动mysql服务并快速修复具有全文索引的表。