一、mysql自带的fulltext分3种:

1.自然语言模式。把搜索字符串解释为一系列单词并查找包含这些单词的数据行。
2.布尔模式。把搜索字符串解释为一系列单词,但允许使用一些操作符字符来"修饰"这些单词以表明特定的要求,如某给定单词必须出现(或不出现)在匹配数据行里,某个数据行必须包含一个精确的短语,等等。
3.查询扩展模式。这种搜索分两阶段进行。第一阶段是自然语言搜索,第二阶段使用原来的搜索字符串加上在第一次搜索中找到的相关度最高的匹配数据行再进行一次搜索。这扩大了搜索范围,它可以把与原来的搜索字符串相关、但用原来的搜索字符串匹配不到的数据行也找出来。
要想对某个数据表进行全文搜索,必须事先为它创建一个FULLTEXT索引,这种索引具有以下特点。
全文搜索的基础是FULLTEXT索引,这种索引5.6之前只能在MyISAM数据表里创建,5.6开始innodb也支持了。FULLTEXT索引只能由CHAR、VARCHAR和TEXT这几种类型的数据列构成。

实例详见:http://book.51cto.com/art/201106/272328.htm

二、第三方开源工具Sphinx、 coreseek、lucene

1.SphinxSphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。

Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

参考:http://www.oschina.net/p/sphinx/

2.coreseek:安装:http://blog.sina.com.cn/s/blog_5aefd9770100ag35.html

                      官网:http://www.coreseek.cn/#benifits