配置和管理搜索筛选器

适用于:SQL ServerAzure SQL 数据库

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

EXEC sp_help_fulltext_system_components 'filter';   

注意

即使使用提供 .xlsx 支持的 Office 筛选包,SQL Server 也不支持 Strict Open XML 电子表格。 不返回任何错误,SQL Server 只是无法对任何 Strict Open XML 电子表格编制索引。

非 Microsoft 筛选器

但是,在可以使用针对非 Microsoft 格式的筛选器之前,必须将它们手动加载到服务器实例中。 有关安装其他筛选器的信息,请参阅 查看或更改注册的筛选器和断字符

另请参阅

sys.fulltext_index_columns (Transact-SQL)
FILESTREAM 与其他 SQL Server 功能的兼容性