本主题介绍与 Microsoft SQL Server 的早期版本相比,全文搜索功能在行为上的更改。
行为更改
下表列出了这些行为更改。
行为更改
说明
主合并
在 SQL Server 2000 中,主合并在午夜启动,或者在对 500,000 个文档执行全文索引后启动。
在 SQL Server 2005 中,主合并既在完全填充结束时启动,也在达到全文索引文件数的内部阈值时启动。
主合并还会在对 500,000 个文档执行全文索引后启动,这与 SQL Server 2000 是相同的。
SQL Server 2005 还允许用户使用数据定义语言启动主合并。
MSSearch 服务
在 SQL Server 2000 中,全文搜索使用 MSSearch 服务作为全文索引和搜索引擎。而在 SQL Server 2005 中,此服务已重命名为 MSFTESQL 服务。MSFTESQL 引擎是基于 MSSearch 技术建立的。
与全文搜索相关的存储过程
由于与全文搜索相关的存储过程在 SQL Server 2005 中已重写,以使用新的全文数据定义语言 (DDL),因此,有些错误会导致语句级错误。
下列错误会导致语句级错误。其他失败为批处理级失败。
- 权限检查失败。
- 显式事务检查失败。(在显式用户事务内不能调用全文存储过程)。
- 在 master、temp 或 model 数据库中执行与全文相关的操作。
- 数据库非只读检查失败。
- 数据库未启用全文模式。
- 参数验证:
- 找不到目录名。
- 表名不存在,或者表不可进行全文索引。
- 列名在表中无效。
- 数据库名和表名等参数为空。
全文目录清除功能
无法在 SQL Server 2005 中运行 sp_fulltext_service 清除功能。
干扰词
在 SQL Server 2005 中,如果使用全文搜索谓词或函数的查询包含干扰词且 transform noise words 配置选项未选中,则会发出一个警告,并且不返回任何行。有关此选项的详细信息,请参阅transform noise words 选项。
返回排名为 0 的行
在 SQL Server 2000 中,不返回排名为 0 的行。但在 SQL Server 2005 中,这些行包括在结果集中。这可能会影响存储过程和其他查询的结果。
运行 sp_fulltext_database
在 SQL Server 2005 中,对已启用全文索引的用户数据库运行 sp_fulltext_database 'enable' 不会执行任何操作。
注意:
默认情况下,用户数据库是启用全文索引的。