不能对多列使用全文搜索

Can't use Fultext search with more than one column

Table 引擎 InnoDB

服务器版本:5.6.24 - MySQL 社区服务器 (GPL)

添加了全文索引

这个有效:

SELECT * FROM resources WHERE MATCH(`short_description`) AGAINST ('Lorem')

这个有效:

SELECT * FROM resources WHERE MATCH(`long_description`) AGAINST ('Lorem')

这行不通:

SELECT * FROM resources WHERE MATCH(`short_description`,`long_description`) AGAINST ('Lorem')

1191 - Can't find FULLTEXT index matching the column list

我也试过用两列创建全文索引,但得到了同样的错误。也尝试过将引擎切换到 MyISAM 同样的错误,但在使用单列时也没有 return 任何匹配行

根据 this SO article,似乎 InnoDB 表不允许在同一 MATCH 条件下搜索多个 FULLTEXT 索引列。

但是,InnoDB 支持 MATCH 针对单个 FULLTEXT 索引列,因此您可以像这样修改查询:

SELECT *
FROM resources
WHERE MATCH(`short_description`) AGAINST ('Lorem')
    OR MATCH(`long_description`) AGAINST ('Lorem')