适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
为 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 不会将筛选器配置为跟踪指向其他对象的链接。
查看已安装的筛选器
若要查看在实例上注册的文档类型和筛选器,请使用以下任一方法:
查询 sys.fulltext_document_types 目录视图。
SELECT * FROM sys.fulltext_document_types;运行 sp_help_fulltext_system_components 存储过程。
EXEC sp_help_fulltext_system_components 'filter';
默认筛选器
SQL Server安装的默认筛选器取决于全文组件版本:
版本 1(SQL Server 2022(16.x)及更早版本):内置筛选器涵盖纯文本、HTML 和 XML 文档。 若要为Microsoft Office和其他文档格式编制索引,可以使用操作系统上安装的任何筛选器。 还可以安装其他筛选器,包括 Microsoft Office 2010 筛选器包或其他非Microsoft筛选器。 有关更多信息,请参阅 自定义版本 1 筛选器和分词符。
版本 2(SQL Server 2025(17.x)及更高版本):除了 HTML 和 XML 之外,内置筛选器还涵盖 Microsoft Office、OpenDocument、OneNote 和 Outlook 文档。 有关详细信息,请参阅 自定义版本 2 筛选器和分词器。
有关筛选器二进制文件的完整列表及其在每个版本中处理的文件扩展名,请参阅 全文筛选器二进制文件。
注意
即使使用提供.xlsx支持的最新 Office 筛选器包版本,SQL Server也不支持严格 Open XML 电子表格。 不会返回错误;SQL Server 只是无法为任何严格 Open XML 电子表格文件的内容建立索引。