0

在我们的数据库中,我们有一个topics包含title列的表。此列通常包含 2 或 3 个单词的值,例如:“宠物”、“爱”、“电影”、“流行音乐”……

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

我已经尝试过BOOLEAN MODE,但除非我提供的术语与列中的值WITH QUERY EXPANSION至少匹配一个单词,否则这些都不会返回任何东西。

Mysql 是否提供基于字符的搜索功能?

4

1 回答 1

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

于 2015-02-12T03:38:13.887 回答