全文搜索筛选器

为 varbinary、varbinary(max)、image 或 xml 数据类型的文档建立索引需要进行额外处理。该处理必须由筛选器执行。筛选器从文档中提取文本信息(去除格式)。然后,筛选器将这些文本发送至与表列相关联的语言的断字器组件。

给定筛选器特定于给定文档类型(.doc、.pdf、.xls、.xml 等等)。这些筛选器实现 IFilter 接口。有关这些文档类型的详细信息,请查询 sys.fulltext_document_types 目录视图。

二进制文档可以存储在单个 varbinary(max) 或 image 列中。对于每个文档,SQL Server 根据文件扩展名来选择正确的筛选器。由于当文件存储在 varbinary(max) 或 image 列中时其文件扩展名不可见,因此文件扩展名(.doc、.xls、.pdf 等等)必须存储在表内一个单独的列中,该列称为类型列。此类型列可以是任意基于字符的数据类型,并且包含文档文件扩展名,例如 .doc 表示 Microsoft Word 文档。在 Adventure Works 的 Document 表中,Document 列的类型为 varbinary(max),而类型列 FileExtension 的类型为 nvarchar(8)。

注意注意

筛选器有可能能够处理嵌入到父对象中的对象,具体取决于筛选器的实现方式。不过,SQL Server 不会将筛选器配置为跟踪指向其他对象的链接。

SQL Server 2008 安装它自己的 XML 和 HTML 筛选器。此外,已在操作系统上安装的任何针对 Microsoft 专有格式(.doc、.xdoc、.ppt 等)的筛选器也由 SQL Server 加载。若要标识当前加载到 SQL Server 的实例上的筛选器,请使用 sp_help_fulltext_system_components 存储过程,如下所示:

EXEC sp_help_fulltext_system_components 'filter'; 

但是,在您可以使用针对非 Microsoft 格式的筛选器之前,您必须将它们手动加载到服务器实例中。有关安装其他筛选器的信息,请参阅如何更改已注册的断字符和筛选器的列表 (Transact-SQL)

查看现有全文索引中的类型列