【问题标题】:MySQL full text search for words with three or less lettersMySQL全文搜索三个或更少字母的单词
【发布时间】:2010-12-07 19:43:44
【问题描述】:

我正在尝试让我的全文搜索(在布尔模式下)检索包含三个或更少字母的单词。

目前,如果我搜索“NBA”之类的内容,我不会得到任何结果。

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

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

【问题讨论】:

    标签: sql mysql full-text-search


    【解决方案1】:

    您可能会对手册的这一部分感兴趣: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 索引。

    (你应该阅读那个页面,更多信息我没有复制粘贴;-))

    【讨论】:

    • 感谢 Pascal,我已经读过同样的内容,我的想法是使用 PHP 函数来检查搜索短语的长度,如果它小于 ft_min_word_len 则附加通配符 * 修饰符如果有比这更好的方法...
    • 哦,对不起,没听懂;;我对此没有太多想法……不过,不确定这是否会带来良好的性能;;顺便说一句:如何使用一些外部索引/搜索引擎,如 solr 或 sphinx ?
    • 谢谢,我听说过狮身人面像,但还没有时间深入了解它,很快就会研究它
    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 2016-06-06
    • 2015-04-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    相关资源
    最近更新 更多