Sql Server中的全文索引(下面统一使用FULLTEXT INDEX来表示全文索引),是一种特定语言搜索索引功能。它和LIKE的不一样,LIKE主要是根据搜索模板搜索数据,它的效率比FULLTEXT INDEX要低。在几百万的字符串中,LIKE需要花几分钟才能返回的结果,FULLTEXT INDEX可能只需要几秒钟。
FULLTEXT INDEX功能是Sql Server的可选项。你可以通过 SELECT FULLTEXTSERVICEPROPERTY('IsFullTextInstalled') 命令,来检查你是否安装了FULLTEXT INDEX。
在开始介绍FULLTEXT INDEX之前,还需要介绍几个重要的相关概念。它们分别是catalog, fulltext index fragment,
Catalog: 在创建FULLTEXT INDEX之前,都需要先创建一个CATALOG, CATALOG是一个虚拟容器对象,它就是用来存储FULLTEXT Index的,一个CATALOG可以关联多个FULLTEXT Index索引。CATALOG不属于任何文件组。
FULLTEXT Index Fragments: 通常一个FULLTEXT索引都是由多个内部表组成的,这些内部表就被称为Fragments。当用户更新表中的数据后,数据库会对改变的部分自动创建一个Fragment对象(前提是在这个表上建立了FULLTEXT INDEX,并且设置了自动跟踪改变)。
你可通过sys.fulltext_index_fragments表来查询所有fragments记录:
SELECT * FROM sys.fulltext_index_fragments;