22,210
社区成员
发帖
与我相关
我的任务
分享
SQL Server 2000 的全文检索
1、创建全文检索
创建全文索引的具体步骤(括号内为每步所调用的存储过程名称):
(1)启动数据库的全文检索功能(sp_fulltext_database)
(2)建立全文检索目录(sp_fulltext_catalog)
(3)在全文检索目录中注册需要进行全文检索的表(sp_fulltext_table)
(4)指出表中需要进行全文检索的列(sp_fulltext_column)
(5)为表创建全文索引(sp_fulltext_table)
(6)填充全文索引(sp_fulltext_catalog)
1、验证全文检索组件是否已经安装
select fulltextserviceproperty('IsFullTextInstalled')
返回1表示已经安装,返回0表示没有安装,返回null表示输入无效或者发生错误
2、修改全文检索的语言为中文
use master
go
exec sp_configure 'default full-text language', '2052'
go
reconfigure with override
go
3、打开(关闭)数据库全文索引的支持
use 'DatabaseName'
exec sp_fulltext_database 'enable'('disable')
4、建立(重建)(删除)全文检索目录
use 'DatabaseName'
exec sp_fulltext_catalog '全文检索目录名', 'create'('rebuild')('drop')
5、为表建立全文检索数据元
use 'DatabaseName'
exec sp_fulltext_table 'TableName', 'create', '全文检索目录名', 'Table主键约束名或唯一约束名'
6、设置需要检索的列(可以添加多个)
exec sp_fulltext_column 'TableName', 'ColumnName', 'add'
7、激活(关闭)全文检索
exec sp_fulltext_table 'TableName', 'activate'('deactivate')
8、启动(停止)全文检索目录的填充
exec sp_fulltext_catalog '全文检索目录名', 'start_full'('stop')
检查全文检索目录填充情况
select fulltextcatalogproperty('全文检索目录名', 'Populatestatus')
返回1表示正在进行,返回0表示已经完成
9、延时,填充全文检索后,需要有一定的延迟时间才会生效,所以要延时
waitfor delay '00:00:10'
go
2、使用全文检索:
1、检索表中既包含b又包含c的所有行(注:列名不带引号)
select * from TableName where contains(列名(, 列名), 'b*' and 'c*')
2、检索表中包含chai,chang,tofu之一的所有列
select * from TableName where freetext(列名(, 列名), 'chai chang tofu')