search

Home  >  Q&A  >  body text

Mysql的Innodb引擎不能使用FULLTEXT索引吗

我想在查询时使用MATCH(...) AGAINST(...)语法,但是我的数据表引擎是Innodb,当我CREATE FULLTEXT INDEX的时候,返回提示The used table type doesn't support FULLTEXT indexes

我想问的是在innodb引擎中是否不能使用FULLTEXT引擎?有什么替代品吗?可以使用MATCH(...) AGAINST(...)语法吗?

ringa_leeringa_lee2781 days ago641

reply all(2)I'll reply

  • 大家讲道理

    大家讲道理2017-04-17 11:01:26

    MySQL 5.6.4里才添加了InnoDB引擎的Full-Text索引支持。

    不能升级MySQL版本的话:

    • 推荐用Lucene(ElasticSearch比较容易部署)或Sphinx这样的第三方解决方案。
    • 如果这个表更新不频繁,查询量不大,又赶时间,可以用触发器、定时任务或者其他类似的DBA技巧创建支持全文索引的镜像表(如MyISAM类型的),代码改动会小一些。

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:01:26

    innodb 不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。

    sphinx 是一个开源软件,提供多种语言的API接口,可以优化mysql的各种查询。

    另外,还可以看看 张宴的这篇文章: 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计。

    reply
    0
  • Cancelreply