重要的几个特性:
  1. 哪些词会被忽略

  搜索词太短 默认全文索引认为4个以上字符的单词是有效词,我们可以在配置中修改ft_min_word_len进行配置
  屏蔽词表中的词 默认的全文索引将一些常用词屏蔽掉,因为这些词太常见了,没有任何语义作用,所以搜索过程中是忽略不计的。当然这个列表也是可以配置的。
  2. 如何进行分词的
  全文索引认为一个连续的有效字符(正则中w匹配的字符集)是一个单词,也可以包含一个“’”, 但是连续的两个’会被认为是一个分隔符。其他的分隔符如:空格、逗号、句点等
  IN BOOLEAN MODE 模式下的应用:
  在布尔匹配模式中,我们可以添加一些特殊的符号,增加一些搜索过程的逻辑功能。如官方网站中提供的实例(搜索含有mysql字符串 且 不含Yousql的语句):
  SELECT * FROM articles WHERE MATCH (title,body)
  -> AGAINST (‘+MySQL -YourSQL’ IN BOOLEAN MODE);
  可见,我们对搜索的控制又多了一些,看起来“高大上”了些。
  实际上,上面的操作隐含了几个意思:
  加号:相当于and
  减号:相当于not
  没有:相当于or
  下面看下布尔类型搜索的几个重要特性:
  1. 没有50%记录选择性的限制,即使搜索结果记录超过总数的50%也同样返回结果
  2. 不会自动的按记录的相关性进行降序排序
  3. 可以直接应用在没有创建fulltext的全文索引上,但是这样会查询的非常慢,所以说还是别用了。
  4. 支持小、大单词长度
  5. 应用屏蔽词列表
  布尔搜索支持的操作符:
  n 加号 +:指示修饰的单词必须出现在记录中
  n 减号 -:指示修饰的单词必须不能出现在记录中
  n 没有任何操作符:单词可有可无,但是包含该词的记录相关性高
  n 双引号 “ : 将一个词组作为一个匹配。如:”one word” 匹配one word在一起的单词
  下面是官方的一些实例:
  至少包含一个词的记录
  ‘apple banana’
  必须包含着两个词
  ‘+apple +juice’
  必须包含apple,包含macintosh的记录相关性高,也可以不包含
  ‘+apple macintosh’
  必须包含apple且不能喊有macintosh
  ‘+apple -macintosh’
  查找apple开头单词的记录
  ‘apple*’
  完整匹配some words单词
  ‘”some words”‘
  了解了基本的mysql全文索引知识,觉得它的全文索引比like当然是强了很多。但是面对高级的搜索还是略显简陋,且性能问题也是担忧。
  本人只是作为入门了解,也是对官网一些基本知识的翻译。