【问题标题】:Full Text Search on MySQL : Can not search by word after hyphen/dashMySQL 上的全文搜索:无法在连字符/破折号后按单词搜索
【发布时间】:2020-05-13 15:38:13
【问题描述】:

我在 DB 中有以下记录:'Vinyl Exam - CA Only'

所以,当我执行以下搜索时:

SELECT  Description
            FROM    products AS p
            WHERE   MATCH (Description) AGAINST ('+Vinyl* +Only*' IN BOOLEAN MODE);

返回记录,但在这种情况下:

SELECT  Description
            FROM    products AS p
            WHERE   MATCH (Description) AGAINST ('+Vinyl* +Only* +CA*' IN BOOLEAN MODE);

物品未归还。

在最后一种情况下我应该怎么做才能退回项目。

【问题讨论】:

  • 是否有任何行具有所有三种模式+Vinyl* +Only* +CA*
  • 是的,我们在 DB 中有以下记录:'Vinyl Exam - CA Only'

标签: mysql sql search full-text-search amazon-aurora


【解决方案1】:

您的搜索不起作用的原因是默认情况下,可以使用全文搜索的字词有最小长度限制。据我记得,InnoDB 最少 3 个字符,MyISAM 最少 4 个字符。

由于您的词 CA 仅 2 个字符长,因此在搜索中将被忽略。 您可以通过更改 mysql 设置来增加/减少此字符限制。

基本上你需要在你的 mysql my.cnf 文件中添加以下配置(取决于你的数据库表引擎):

[mysqld]
innodb_ft_min_token_size=2
ft_min_word_len=2

了解更多详情here

【讨论】:

    猜你喜欢
    • 2017-04-17
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多