sql server 2008全文索引干扰词示例
处理网站查询包含”之”字出现”全文搜索条件中包含干扰词”现象的总结:
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
相关文档:
作者:superhasty
2007-11-29
在论坛上常见有朋友抱怨,说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL
Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data
Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。S ......
如何判断字段是否存在
if col_length('表名','字段1') is null ALTER TABLE 表名 ADD 字段1 Nvarchar(50) if col_length('表名','字段2') is null ALTER TABLE 表名 ADD 字段2 Nvarchar(50) ");
删除字段
if col_length('表名','字段1,') is not null ALTER TABLE 表名 drop c ......
找出TABLE1中
Column1 满足value1
或者
Column2 满足value2
或者
Column3 满足value3
的纪录
SELECT top 10 * from TABLE1
WHERE
CASE WHEN COLUMN1='value1' THEN 1
ELSE
(CASE WHEN COLUMN2='value2' THEN 1
ELSE
(CASE WHEN COLUMN3=value3 THEN 1 ELSE 0 END)
END)
END =1 ......
方法(1)
SELECT stuff((select ','+ltrim(ColumnName) from #A for xml path('')
),1,1,'')
/*
102,103,104,105
*/
方法(2)
DECLARE @s NVARCHAR(1000)='';
SELECT @s+=ColumnName+',' from #A;
SELECT @s; ......
今天在配置数据库发布和分发时总是报出现 18483 错误
提示说:错误 18483:未能连接到服务器 "XXX",因为 'distributor_admin'未在该服务器上定义为远程登陆。
我的发布和分发是同一个服务器,"XXX" 为我的机器名,分发数据库是默认的名称,而我在另外一台机器上做时就正常。
1、设置共享复制目录:
......