Full-Text 搜索的重大更改

本主题详细介绍全文搜索中的重大变更。 这些更改可能导致基于 SQL Server的早期版本的应用程序、脚本或功能无法继续使用。 在进行升级时可能会遇到这些问题。 有关详细信息,请参阅 使用升级顾问准备升级

SQL Server 2014 中 Full-Text 搜索的重大更改

信息将在稍后提供。

SQL Server 2012 中 Full-Text 搜索的重大更改

sys.fulltext_languages中名称列的排序规则已更改

目录视图中语言 名称sys.fulltext_languages(Transact-SQL) 中的排序规则已从资源数据库的固定排序规则更改为为 SQL Server 实例选择的默认排序规则。 此更改使你能够将 sys.syslanguages (Transact-SQL) 视图与 sys.fulltext_languages 联接时,比较名称列中的值。 例如,可以查询默认全文语言不同于默认数据库语言的所有数据库。

SQL Server 2008 中 Full-Text 搜索的重大变更

以下重大更改适用于 SQL Server 2005 和 SQL Server 2008 及更高版本之间的 Full-Text 搜索。

功能 / 特点 情景 SQL Server 2005 SQL Server 2008 及更高版本
包含用户定义的类型的 CONTAINSTABLE (UDT) 全文键是 SQL Server 用户定义的类型,例如 MyType = char(1) 返回的键属于用户定义的类型。

在此示例中,这将是 char(1)。
返回的键是用户定义的类型。 在此示例中,这将是 MyType
top_n_by_rank 参数(CONTAINSTABLE 和 FREETEXTTABLETransact-SQL 语句) 使用0作为参数的top_n_by_rank查询。 失败并显示一条错误消息,指出必须使用大于零的值。 成功,返回零行。
CONTAINSTABLE 和 ItemCount 在将更改推送到 MSSearch 之前,请从基表中删除行。 CONTAINSTABLE 返回幽灵记录。 ItemCount 未更改。 CONTAINSTABLE 不返回任何虚影记录。
ItemCount 表包含空文档或类型列。 除了索引文档之外,在 ItemCount 值中对 null 或具有 null 类型的文档进行计数。 仅索引文档会计入ItemCount值中。
目录 ItemCount 具有 NULL 扩展的 Blob 列。 它被计入目录的ItemCount 它不会在 目录的 ItemCount 中计数。
UniqueKeyCount 从目录查询唯一键计数,例如,两个表(table1 和 table2)分别包含三个单词:word1、word2 和 word3。 UniqueKeyCount = 9。 下表总结了如何实现此值:

table1 = 3

表1的全文索引的EOF=1

table2 = 3

表 2 的全文索引的 EOF = 1

全文索引 = 1
对于每个表,UniqueKeyCount 是唯一关键字数 + 1(0xFF)。 这不会将 > 1 文档中的单词视为新的唯一键。

对于目录,UniqueKeyCount 是目录下每个表的 UniqueKeyCount 的总和。 不同表中的相同单词被视为唯一键。 在这种情况下,唯一键计数为 8。
预计算排名 服务器级别选项 FREETEXTTABLE 查询的性能优化。 如果选项设置为 1,则通过 top_n_by_rank 指定的 FREETEXTTABLE 查询使用存储在全文目录中的预计算排名数据。 不被支持。
更新键列时调用sp_fulltext_pendingchanges 更新由两行构成的表格中的一行的全文键列,并运行 sp_fulltext_pendingchanges。 这两行都会出现。 仅显示一行。
内联函数 具有全文运算符的内联函数 返回错误消息。 返回相关行。
sp_fulltext_database 使用sp_fulltext_database启用或禁用全文搜索。 全文查询不返回任何结果。 如果为数据库禁用全文,则无法执行全文操作。 返回全文查询的结果,允许进行全文操作,即使数据库已禁用全文检索功能。
特定于区域设置的停用词 在父语言的本地特定变体中进行查询,例如比利时法语和加拿大法语。 在查询中,本地化变体由其父语言组件(分词器、词干分析器和停用词)进行处理。 例如,法国(法国)组件用于解析比利时法语。 必须为每个区域设置标识符(LCID)显式添加停用词。 例如,需要为比利时、加拿大和法国指定 LCID。
同义词库词干处理过程 使用同义词库和词形变化(词干提取)。 同义词在扩展后会自动进行词干提取。 如果想在扩展中包含词干形式,就需要明确添加该词干形式。
全文目录路径和文件组 使用全文目录。 每个全文目录都有一个物理路径,属于文件组。 它被视为数据库文件。 全文目录是虚拟对象,不属于任何文件组。 全文目录是引用一组全文索引的逻辑概念。

注意:指定全文目录的 SQL Server 2005Transact-SQL DDL 语句正常工作。
sys.fulltext_catalogs 使用此目录视图的路径、data_space_id和file_id。 这些列返回特定值。 这些列返回 NULL,因为全文目录不再位于文件系统中。
sys.sysfulltextcatalogs 使用此已弃用的系统表的路径列。 返回全文目录的文件系统路径。 返回 NULL,因为全文目录不再位于文件系统中。
sp_help_fulltext_catalogs

sp_help_fulltext_catalogs_cursor
使用这些已弃用存储过程的 PATH 列。 返回全文目录的文件系统路径。 返回 NULL,因为全文目录不再位于文件系统中。
sp_help_fulltext_catalog_components 使用此存储过程sp_help_fulltext_catalog_components。 返回用于当前数据库中所有全文目录的所有组件(筛选器、断字符和协议处理程序)的列表。 返回空行。
DATABASEPROPERTYEX 使用 IsFullTextEnabled 属性。 IsFullTextEnabled 设置指示是否在给定数据库中启用全文搜索。 此列的值不起作用。 用户数据库始终启用全文搜索。

另请参阅

对 Full-Text 搜索的行为更改
全文搜索