配置和管理搜索筛选器

适用于: SQL Server Azure 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等) 必须存储在表中的单独列(称为类型列)中。 此类型列可以是任何基于字符的数据类型,并包含文档文件扩展名,例如 Microsoft Word 文档的 .doc。 在 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 功能的兼容性