全文索引概述

全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询。全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中。全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的。生成全文索引的过程不同于生成其他类型的索引。全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排、堆积且压缩的索引结构。在 SQL Server 2008 中,全文索引大小仅受运行 SQL Server 实例的计算机的可用内存资源限制。

从 SQL Server 2008 开始,全文索引与数据库引擎集成在一起,而不是像 SQL Server 早期版本那样位于文件系统中。对于新数据库,全文目录现在为不属于任何文件组的虚拟对象;它仅是一个表示一组全文索引的逻辑概念。然而,请注意,在升级 SQL Server 2000 或 SQL Server 2005 数据库(即包含数据文件的任意全文目录)的过程中,将创建一个新文件组。有关详细信息,请参阅全文搜索升级

注意注意

在 SQL Server 2008 中,全文引擎位于 SQL Server 进程中,而不是位于单独的服务中。通过将全文引擎集成到数据库引擎中,可提高全文可管理性和总体性能,并进一步优化了混合查询。

每个表只允许有一个全文索引。若要对某个表创建全文索引,该表必须具有一个唯一且非 Null 的列。您可以对以下类型的列创建全文索引:char、varchar、nchar、nvarchar、text、ntext、image、xml、varbinary 和 varbinary(max),从而可对这些列进行全文搜索。对数据类型为 varbinary、varbinary(max)、image 或 xml 的列创建全文索引需要您指定类型列。类型列是用来存储每行中文档的文件扩展名(.doc、.pdf、xls 等)的表列。

对全文索引的结构的良好了解将帮助您了解全文引擎的工作方式。有关详细信息,请参阅全文索引的结构

创建和维护全文索引的过程称为“填充”(也称为“爬网”)。有三种类型的全文索引填充:完全填充、基于更改跟踪的填充和基于时间戳的增量式填充。有关详细信息,请参阅全文索引填充

创建全文索引

更改全文索引

删除全文索引