语法上来说,建立全文索引和建立其他的索引差不多:

CREATE FULLTEXT INDEX title ON column (title)

ALTER TABLE table_name ADD FULLTEXT (column)

使用全文索引语法:

MATCH(col1,col2,…) AGAINST(expr [search_modifier])

search_modifier为搜索修饰符,

  • IN BOOLEAN MODE(布尔模式):使用具自己语法的搜索字符串包括搜索条件进行搜索。
  • IN NATURAL LANGUAGE MODE(自然语言模式):搜索字符串不包括特殊语法,不会匹配超过 50%的行中都存在的单词
  • IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION(带查询扩展的自然语言模式):和 IN NATURAL LANGUAGE MODE 差不多,在结果返回前会将初始条件搜索的结果加入到初始搜索条件中再次搜索。

MySql 全文索引的一些局限性:

  • 有单词的最短长度的限制, SHOW VARIABLES LIKE ‘ft_min_word_len’ 看一下,结果为 4.
  • 只能使用 MyISAM 的存储引擎。
  • 全文检索是可更新的索引,在表中添,删,改的时候,每次索引都要进行修改,这样会导致表查询性能降低。
  • 对于非英文单词,比如中文这种没有单词分隔符的就无法确定单词的开始和结束

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: MySql 全文索引的总结

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可