红包
◆ [2024-12-23 星期一 5:44] ◆ 您来自:18.227.134.165,欢迎您访问風雲工作室。 收藏本站 ◆ | ◆ 设为首页
联系站长(腾讯QQ)
5029111 [風雲]
站长当前离线
首  页 论坛交流 游戏频道 无忧脚本 旧版论坛 云服务器 聊 天 室 自助链接 来访记录 访客留言 搜索提供
位置:風雲工作室 - 论坛交流 - 技术专栏 - 后台开发 - 【原创】使用SQL语句为SQL Server 2005 Express创建全文索引 返回
主题:【原创】使用SQL语句为SQL Server 2005 Express创建全文索引
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(1楼)【原创】使用SQL语句为SQL Server 2005 Express创建全文索引
首先,一般的SQL 2005 Express是不支持全文索引的,需要下载一个“具有高级服务的Microsoft SQL Server 2005 Express”,地址在:
http://www.microsoft.com/downloads/details.aspx?familyid=5B5528B9-13E1-4DB9-A3FC-82116D598C3D&displaylang=zh-cn
SP2的,260多M,不但具有全文检索服务,还内置了SSMSE管理器的Express版。

下面以表T_Article为例,为BiaoTi、NeiRong两个字段建立全文索引。

开始创建全文目录了:
-- SQL语句:
create fulltext catalog FT_Article in path 'D:\DataBase\FullText'
-- 存储过程:
sp_fulltext_catalog FT_Article, 'create', 'D:\Database\FullText'
注意:对应的目录必须在服务器上已经建好了。

然后,在T_Article表上创建全文索引并加入BiaoTi、NeiRong字段。
-- SQL语句:
create fulltext
        index on T_Article
        (
                BiaoTi, NeiRong
        )
        key index pk_T_Article
        on FT_Article
-- 存储过程:
sp_fulltext_table 'T_Article', 'create', 'FT_Article', 'pk_T_Article'
sp_fulltext_column T_Article, 'BiaoTi', 'add'
sp_fulltext_column T_Article, 'NeiRong', 'add'
注意:pk_T_Article请使用PK_tableName的方式,否则会提示错误。

使用全文检索:
select * from T_Article where contains(NeiRong, 'div')
select * from T_Article where freetext(NeiRong, 'div')

查看全文检索的配置情况:
sp_help_fulltext_catalogs -- 检查数据库有哪些全文目录
sp_help_fulltext_tables FT_Article -- 查看哪些表把全文索引建立在FT_Article下
sp_help_fulltext_columns T_Article -- 查看T_Article表哪些字段配置了全文索引

删除全文索引必须与创建的时候倒过来一步一步操作:
drop fulltext index on T_Article -- 撤销T-Article上的全文检索
drop fulltext catalog FT_Article -- 撤销全文目录FT_Article


时间:2010年10月19日 14:13:24 IP:已记录 引用 回复
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(2楼)【转帖】全文索引的一点个人总结
建立全文索引后,使用Contains查询很快。搁置约几分钟;再次使用contains查询很慢,会超时,第2次则又快起来了。不久又如此。    sqlserver2005全文索引的缓存会被释放,如果才能保持?
初步解决方法是调整了全文索引服务的一个verify_signature属性,禁用。
SELECT fulltextserviceproperty('VerifySignature')
exec sp_fulltext_service verify_signature,0

----------------------------------------------------
在全文索引中排序,排序字段为索引列,但是经常排序速度很慢。
初步解决方法是:重新生成索引
ALTER INDEX ALL ON table REORGANIZE
ALTER FULLTEXT CATALOG 全文目录名称 REORGANIZE
参考:
使用 ALTER INDEX REORGANIZE 对基表的索引进行碎片整理。 
使用 ALTER FULLTEXT CATALOG REORGANIZE 重新组织全文目录。切记要在进行性能测试之前执行此操作,因为它会引起该目录中全文索引的主合并。 
仅选择较小的列作为全文键列。即使支持 900 字节的列,也不建议您使用这么大的键列来创建全文索引。 
将多个 CONTAINS 合并为一个 CONTAIN。在 Microsoft SQL Server 中,您可以在 CONTAINS 查询中指定一个包含若干列的列表。 
如果只需要全文键或排名的信息,请分别使用 CONTAINSTABLE 或 FREETEXTTABLE,而不要使用 CONTAINS 或 FREETEXT。 
使用 FREETEXTTABLE 和 CONTAINSTABLE 语法的 TOP_N_BY_RANK 选项来限制结果数并提高性能。如果您不是对可能查询到的所有信息都感兴趣,可使用此选项。


时间:2010年10月19日 15:46:52 IP:已记录 引用 回复
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(3楼)【原创】使用文件组存储全文索引的方式
--添加文件组
alter database [Northwind] add filegroup [NewFileGroup]

--向文件组添加文件
alter database [Northwind]
add file(name='NewFile', filename='E:\Database\Northwind\NewFile.ndf')
to filegroup [NewFileGroup]

--在文件中创建全文目录并设置为默认目录
create fulltext catalog [FT_Catalog] on filegroup [NewFileGroup] as default

--在全文目录里面,为表创建全文索引
create fulltext index on [T_Article]([Title], [Content])
key index [pk_T_Article] on [FT_Catalog]

注意:如果文件组有默认的全文目录,可以使用如下方式:
key index [pk_T_Article] on (filegroup [NewFileGroup])
key index索引名必须是 pk_表名, (filegroup [NewFileGroup])必须有括号


时间:2011年3月24日 8:50:40 IP:已记录 引用 回复
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(4楼)
--删除文件
alter database [Northwind] remove [NewFile]

--删除文件组
alter database [Northwind] remove [NewFileGroup]


时间:2011年3月24日 8:53:39 IP:已记录 引用 回复
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(5楼)更改全文索引属性
ALTER FULLTEXT INDEX ON table_name
{    ENABLE
  | DISABLE
  | SET CHANGE_TRACKING { MANUAL | AUTO | OFF }    --自动跟踪更改设置
  | ADD ( column_name
      [ TYPE COLUMN type_column_name ]
      [ LANGUAGE language_term ] [,...n] )
      [ WITH NO POPULATION ]
  | DROP ( column_name [,...n] )
    [WITH NO POPULATION ]
  | START { FULL | INCREMENTAL | UPDATE } POPULATION
  | { STOP | PAUSE | RESUME } POPULATION
}


时间:2011年3月24日 9:06:06 IP:已记录 引用 回复

© Copyright 2006-2024,風雲工作室 All rights reserved.
湘ICP备05009306号QQ登录
操作 1 个库,连接 6 次,执行 11 次,耗时 203 毫秒。