MySQL上的全文搜索:连字符/破折号后无法按单词搜索

问题描述 投票:0回答:1

我在数据库中有以下记录:'乙烯基考试-仅CA'

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

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);

未返回项目。

在最后一种情况下我应该怎么做才能退还该物品。

mysql sql search full-text-search aws-aurora
1个回答
0
投票

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

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

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

[mysqld]
innodb_ft_min_token_size=2
ft_min_word_len=2

查找更多详细信息here

© www.soinside.com 2019 - 2024. All rights reserved.