处理网站查询包含”之”字出现”全文搜索条件中包含干扰词”现象的总结:
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
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