【问题标题】:MySQL Fulltext Search with short words removal disabledMySQL全文搜索禁用短词删除
【发布时间】:2011-08-03 00:37:14
【问题描述】:

我在 Dreamhost 上使用共享主机。如何让mysql全文搜索长度小于3的短词?无论如何我可以直接在php中完成吗?

谢谢。

【问题讨论】:

标签: php mysql full-text-search hosting


【解决方案1】:

全文确实适用于 4 个字符或更少的字符串,但默认情况下不适用。您需要通过更改 my.cnf 文件中的 ft_min_word_len=2(如果您想索引 2 个字符单词)来告诉 MySQL 对它们进行索引。

然后您需要重新启动 MySQL,并在相关表上重建全文索引。

某些想要索引的词(例如 IT)可能位于停用词列表中。谷歌搜索会告诉你如何解决这个问题。 IIRC 只是将它们添加到要从默认停用词列表中索引的单词的文本文件中。

【讨论】:

    【解决方案2】:

    如果您只使用 3 个字符或更少字符的字符串进行搜索,那么进行全文搜索毫无意义 - 您只需要:

    select * from table where field LIKE'%xxx%'
    

    如果您正在进行全文搜索,那么您的搜索字符串将超过 3 个字符,这将否定上述要求。

    所以 - 您是否在搜索不超过 3 个字符的字符串?

    【讨论】:

    • 是的。但我需要使用全文搜索以获得更好的搜索结果。
    • 全文搜索不适用于少于 4 个字符的字符串,因此您不会得到任何结果。全文搜索的最小字符串长度为 4。要搜索
    【解决方案3】:

    您必须在查询中使用 LIKE'%xxx%' - 全文不适用于

    【讨论】:

    • 感谢您的回复。但是如果我在全文搜索中添加“LIKE”,它会破坏相关的搜索结果排列。在查询条件中添加“LIKE”后,是否可以将搜索结果保持在相关排列中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多