您的位置:首页技术开发数据库技巧 → SQL Server全文检索简介

SQL Server全文检索简介

时间:2004/11/15 23:32:00来源:本站整理作者:蓝点我要评论(0)

全文索引和全文检索是sql server 7.0的新增功能,它能够对数据中的字符类型列(如varchar、text等类型列)进行索

引,并通过索引实现全文搜索查询。sql server常规索引与全文检索相比,二者的区别如下:



常规索引                                  全文索引

使用create index或约束定义创建            使用全文索引存储过程创建和删除

通过删除或执行drop index语句删除



当插入、修改或删除数据时,sql server      只能通过任务调度或执行存储过

能够自动更新常规索引内容                  程来填充全文索引



每个表可以建立多个常规索引                每个表只能有一个全文索引

索引不能分组                              同一个数据库中的多个全文索引可

                                          以组织为一个全文目录

常规索引存储在数据库文件中                全文索引存储在文件系统中



为了支持全文索引操作,sql server 7.0新增了一些新存储过程和transact-sql语句,使用这些存储过程创建全文索引的

具本步骤为(括号内为每步所调用的存储过程名称):



(1)启动数据库的全文处理功能(sp_fulltext_datebase);

(2)建立全文目录(sp_fulltext_catalog);

(3)在全文目录中注册需要全文索引的表(sp_fulltext_table);

(4)指出表中需要全文检索的列名(sp_fulltext_column)

(5)为表创建全文索引(sp_fulltext_table);

(6)填充全文索引(sp_fulltext_catalog)。



例:

use pubs

go

exec sp_fulltext_database 'enable'

--为titles表建立全文索引数据元,其中create为建立,activate为激活,deactivate为关闭表全文索引的激活状态,使

它不再参加全文目录填充,drop为删除;create参数中,后面跟的是全文目录名称和索引列名。

--下面语句为pubs数据库中的titles表创建全文索引数据元,存储该数据元的全文目录为FT_pubs,所使用的唯一索引为

UPKCL_titleidind(title表中为title_id列的PRIMARY KEY约束所建立的唯中索引)

sp_fulltext_table titles,'create','FT_pubs','upkcl_titledind'



--激活它

sp_fulltext_table titles,'activate'



--指定参加全文索引的列

sp_fulltext_column 'titles','title','add'

sp_fulltext_column 'titles','notes','add'



下面是一个完整的例子:

--在执行该脚本程序之前启动sql server的全文搜索服务,即microsoft search服务

use pubs  --打开数据库

go

--检查pubs是否支持全文索引,如果不支持全文索引,则使用sp_fulltext_datebase打开该功能

if (select databaseproperty ('pubs','IsFulltextEnables'))=0

   execute sp_fulltext_database 'enable'

--建立全文目录FT_pubs

execute sp_fulltext_catalog 'FT_pubs','create'

--为titles表建立全文索引数据元

execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind'

--设置全文索引列名

execute sp_fulltext_column 'titles','title','add'

execute sp_fulltext_column 'titles','notes','add'

--建立全文索引

execute sp_fulltext_table 'FT_pubs','activate'

--填充全文索引目录

execute sp_fulltext_catalog 'FT_pubs','start_full'

  GO

  --检查全文目录填充情况

   WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0

    BEGIN

     --如果全文目录正处于填充状态,则等待30秒后再检测一次

     WAITFOR DELAY ‘0:0:30’

    END

--全文目录填充完成后,使用全文目录检索



--查询title列或notes列中包含有database或computer字符串的图书名称

SELECT title

  FROM title

  where CONTAINTS(title,'database')

   or contains(notes,'database')

   or contains(title,'computer')

   or contains(notes,'computer')





  


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 mssql企业管理器不能打 Oracle PRKC-1002错误原因和解决方案SQL SERVER数据库日志清空图文教程win2003计算机改名后sql server 2005 本地复DB2错误信息码大全

人气排行 彻底解决mysql中文乱码的办法mysql数据库root密码忘记的修改方法SQL SERVER数据库日志清空图文教程.bak备份文件如何恢复Oracle PRKC-1002错误原因和解决方案Oracle错误代码大全如何将txt的文本数据导入SQL server 2005呢DB2错误信息码大全