生产环境中,用到mysql全文索引的童鞋应当是少数。但是我现在所在的工作中,非常广泛的用到mysql全文索引,统一做下笔记。也可以方便有需要的童鞋。

全文索引,英文叫做fulltext index,法文叫做L'index de texte intégral。使用环境,当需要在大量文本中搜索某些内容的时候;譬如文章搜索,百度搜索,淘宝搜索。。。

我现在所在环境用的最多的是网站商品信息搜索。


mysql全文索引几点信息

  1. mysql5.6之前,只有myisam支持全文索引。到了mysql5.6,innodb开始支持全文索引(效果还不错)。

  2. 比like '%%'快N倍,速度不是一个数量级别。但是全文索引可能存在精度问题

  3. 如果有大量数据需要装载到mysql全文索引,建议先装在数据,再创建全文索引。

    或者先disable key,装载完数据后再enable key。二者速度都比直接在有全文索引的表中导入大批量数据要快的多。

  4. 默认全文搜索不区分大小写。若想区分大小写,可以更改成对应字符集的二进制排序方式。如Latin1编码下则选择latin1_bin作为二进制排序方式。

  5. 搜索语法match() against得到的是一个非负浮点数。该数值表示搜索数据与展示数据的相关度。0表示毫无相关性。