2009-10-18 72 views
10

我正在尝试使用三个字母或更少的字母来搜索我的全文搜索(以布尔模式)。MySQL全文搜索带三个或更少字母的单词

目前,如果我搜索“NBA”之类的东西,我没有得到任何结果。

但是,如果我将通配符运算符“*”附加到搜索词,我会得到结果。

我还读到,您可以删除my.ini中的三个字限制,但我想知道是否有更好的方法可以在飞行中执行此操作。

回答

16

手册的这部分可能感兴趣:11.8.6. Fine-Tuning MySQL Full-Text Search(引用它的一部分)

的最小和的 话要被索引由 ft_min_word_lenft_max_word_len 定义最大长度系统变量。 默认的最小值是四个 个字符;默认最大值为 版本相关。如果您更改了 这两个值,则必须重建您的 FULLTEXT索引。
例如,如果您 想三个字符的话是 搜索,您可以通过将 以下行的选项文件中设置 ft_min_word_len变量:

[mysqld] 
ft_min_word_len=3 

然后,你必须重新启动服务器和 重建你的FULLTEXT索引。

(你应该阅读该网页,以获取更多的信息我没有复制粘贴;-))

+0

感谢帕斯卡, 我已经读同一个,这个想法我是做它带有一个PHP函数,用于检查搜索短语的长度,并附加通配符*修饰符,如果它小于ft_min_word_len 想知道是否有更好的方法去解决这个问题... – 2009-10-18 18:30:07

+0

哦,对不起,没有明白 ;;我对此没有太多的想法...虽然;但不确定这是否是好的表现。就像一个旁注:如何使用外部索引/搜索引擎,如solr或sphinx? – 2009-10-18 18:32:49

+0

谢谢, 我听说过狮身人面像,但还没有时间围绕它来包裹我的头,它会很快研究它 – 2009-10-18 19:13:57