SQL Server 2005 全文搜索包括改进和更新的干扰词文件
Microsoft SQL Server 2005 全文搜索包括改进和更新的干扰词文件。
这些干扰词文件位于以下目录中:
$SQL_Server_Install_Path\Microsoft SQL Server\MSSQL.1\MSSQL\FTDATA\
在同时设置 SQL Server 2005 和全文搜索支持时,会创建此目录并安装干扰词文件。
注意:如果您使用的是较低版本的 SQL Server 中的自定义干扰词文件,则在升级到 SQL Server 2005 后,这些自定义干扰词文件将不再有效。要继续使用这些自定义干扰词文件,必须按照“更多信息”一节中的步骤操作。
从 SQL Server 2000 或 SQL Server 7.0 升级到 SQL Server 2005 后,将根据改进和更新的 SQL Server 2005 干扰词文件填充全文目录。
来自以前 SQL Server 安装的干扰词文件将被放在以下目录中:
$SQL_Server_Install_Path\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\FTERef
此外,旧的干扰词文件名也将被更新。例如,简体中文干扰词文件名称将从 noise.chs 更新为 noiseCHS.MSSearch2x.txt。
要在升级到 SQL Server 2005 后继续使用旧的干扰词文件,请按照下列步骤操作:
| 1. | 升级到 SQL Server 2005 后,立即停止全文目录填充。为此,对每个全文索引运行以下 ALTER FULLTEXT INDEX 命令:
ALTER FULLTEXT INDEX ON table_name STOP POPULATION
注意:在此命令中,table_name 是表名称的占位符。如果启用了更改跟踪,请先运行以下命令禁用更改跟踪,然后再停止填充: ALTER FULLTEXT INDEX ON table_name SET CHANGE_TRACKING OFF
有关如何停止全文索引填充的更多信息,请参见 SQL Server 联机丛书中的“更改全文索引 (Transact-SQL)”主题。 |
| 2. | 将旧的干扰词文件从 $SQL_Server_Install_Path\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\FTERef 目录复制到 $SQL_Server_Install_Path\Microsoft SQL Server\MSSQL.1\MSSQL\FTDATA\ 目录。 注意:当升级群集解决方案时,旧的干扰词文件将被复制到以下安装节点目录中: $SQL_Server_Install_Path\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\FTERef
|
| 3. | 重命名旧的干扰词文件,以便与 SQL Server 2005 干扰词文件的名称一致。例如,将简体中文干扰词文件的名称 noiseCHS.MSSearch2x.txt 重命名为 noiseCHS.txt。 注意:必须先备份 SQL Server 2005 干扰词文件,然后再将其替换为旧的干扰词文件。 |
| 4. | 重新填充全文目录。要重新启动填充,请对每个全文索引运行以下 ALTER FULLTEXT INDEX 命令:
ALTER FULLTEXT INDEX ON table_name START FULL POPULATION
如果要使用更改跟踪,请运行以下命令来重新启动填充并启用更改跟踪:
ALTER FULLTEXT INDEX ON table_name SET CHANGE_TRACKING {MANUALAUTO}
有关如何启动全文索引填充的更多信息,请参见 SQL Server 联机丛书中的“更改全文索引 (Transact-SQL)”主题。 |
以下代码是对步骤 1 中的每个全文索引停止全文索引填充的一个示例脚本。可以将此脚本改为对步骤 4 中的每个全文索引启动全文索引填充。
-- Sample script to stop full-text index population for
-- each full-text index.
DECLARE @table_name NVARCHAR(517),
@schema_name NVARCHAR(517);
DECLARE @exec_str NVARCHAR(4000);
DECLARE @change_tracking_state NCHAR(1);
-- Retrieve a list of tables with full-text indexes and stop
-- full-text index population for each full-text index.
DECLARE ms_crs_ftind CURSOR STATIC LOCAL FOR
SELECT t.name, SCHEMA_NAME(t.schema_id), ft.change_tracking_state
FROM sys.fulltext_indexes AS ft
JOIN sys.tables AS t
ON (ft.object_id = t.object_id);
OPEN ms_crs_ftind;
FETCH ms_crs_ftind INTO @table_name, @schema_name, @change_tracking_state;
WHILE @@FETCH_STATUS >= 0
BEGIN
-- If change tracking is enabled ('O' indicates change tracking
-- is OFF), stop change tracking before stopping population.
IF (@change_tracking_state != N'O')
BEGIN
SELECT @exec_str = 'ALTER FULLTEXT INDEX ON '
+ QUOTENAME(@schema_name,'[')+'.'+ QUOTENAME(@table_name,'[')
+ ' SET CHANGE_TRACKING OFF ';
EXEC (@exec_str);
END
-- Stop full-text index population for each full-text index.
SELECT @exec_str = 'ALTER FULLTEXT INDEX ON '
+ QUOTENAME(@schema_name,'[')+'.'+QUOTENAME(@table_name,'[')
+ ' STOP POPULATION ';
EXEC (@exec_str);
FETCH ms_crs_ftind INTO @table_name,@schema_name, @change_tracking_state;
END
DEALLOCATE ms_crs_ftind;
请扫描二维码添加站长微信