【问题标题】:MySQL FULLTEXT cant find indexMySQL FULLTEXT 找不到索引
【发布时间】:2016-11-11 17:36:16
【问题描述】:

我尝试运行以下查询

SELECT * FROM complains WHERE match(title, description) against('+lorem' IN BOOLEAN MODE)

表抱怨有两个 FULLTEXT 索引。标题和描述,但我仍然从 MySQL 收到此错误

Error Code: 1191. Can't find FULLTEXT index matching the column list

但是我可以单独为每一行运行查询

SELECT * FROM complains WHERE match(description) against('+lorem' IN BOOLEAN MODE)
SELECT * FROM complains WHERE match(title) against('+lorem' IN BOOLEAN MODE)

这很好用。我错过了什么?

【问题讨论】:

    标签: mysql full-text-search fulltext-index


    【解决方案1】:

    如果您在 match() 运算符中列出多个字段并使用布尔模式和 innodb 表引擎,那么您需要有一个覆盖字段的多列全文索引,正如Boolean Full-Text Searches 上的 MySQL 文档所说:

    InnoDB 表需要 MATCH() 表达式的所有列上的 FULLTEXT 索引来执行布尔查询。即使没有 FULLTEXT 索引,针对 MyISAM 搜索索引的布尔查询也可以工作,尽管以这种方式执行的搜索会很慢。

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-08
      • 2023-03-19
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多