日期:2014-05-17 浏览次数:20558 次
处理网站查询包含”之”字出现”全文搜索条件中包含干扰词”现象的总结: author:perfectaction Sql server 2008全文索引的干扰词表默认在Resource库系统表内,无法更改,但sql2008提供了自定义干扰词表的功能,可绑定到某个全文索引上。 相关操作如下: --sql server 2008 全文索引建立及创建全文非索引字表(干扰词表) --以dbtest的user_info表为例 --选择数据库 USE dbtest GO --创建全文目录,这个是逻辑名 CREATE FULLTEXT CATALOG user_info AS DEFAULT; GO --创建全文非索引字表(干扰词表) CREATE FULLTEXT STOPLIST T_FULLTEXT_STOPLIST_user_info --全文非索引字表表名 FROM SYSTEM STOPLIST; --从系统全文非索引字表导入 --删除我们不需要的干扰词,如"之"字 ALTER FULLTEXT STOPLIST [T_FULLTEXT_STOPLIST_user_info] DROP '之' LANGUAGE 'Simplified Chinese'; --增加我们需要的干扰词,如"之"字 ALTER FULLTEXT STOPLIST [T_FULLTEXT_STOPLIST_user_info] ADD '之' LANGUAGE 'Simplified Chinese'; --创建表user_info的全文索引 CREATE FULLTEXT INDEX ON [dbo].[user_info] --表名 ([mem_name] --列名 LANGUAGE [Simplified Chinese]) KEY INDEX [PK_user_info] --聚集索引名 ON (FILEGROUP [ftfg_FT_user_info]) --指定文件组名,如不指定,则存在当前表所在文件组 WITH (CHANGE_TRACKING = AUTO, STOPLIST =T_FULLTEXT_STOPLIST_user_info --指定使用的全文非索引字表 ) --其它: --对已存在全文索引指定全文非索引字表,命令执行后, --如果CHANGE_TRACKING = AUTO,则会自动修改已填充索引,但不会全部重填 ALTER FULLTEXT INDEX on user_info --表名 SET STOPLIST =SYSTEM --指定使用的全文非索引字表为系统自带 ALTER FULLTEXT INDEX on user_info --表名 SET STOPLIST=T_FULLTEXT_STOPLIST_user_info ;--指定使用的全文非索引字表为用户自定义 --启动填充,如果CHANGE_TRACKING != AUTO,则需要启动一次填充才使新设定的全文非索引字表生效; ALTER FULLTEXT INDEX on user_info --表名 START FULL POPULATION