我有info_list表,有3个字段id,title,content
我在表上建立了全文检索,右键-〉唯一索引-〉选择字段(title,content)->创建全文目录(ft_info)->新建调度(我没建)-〉下一步-〉完成然后我手动在全文目录上右键启动完全填充。在查询分析器里面select * from info_list where contains(title,'tighter')测试 //表中有数据但是执行结果为空,不知道什么原因本人第一次用全文检索,请各位大哥大姐帮帮忙
我在表上建立了全文检索,右键-〉唯一索引-〉选择字段(title,content)->创建全文目录(ft_info)->新建调度(我没建)-〉下一步-〉完成然后我手动在全文目录上右键启动完全填充。在查询分析器里面select * from info_list where contains(title,'tighter')测试 //表中有数据但是执行结果为空,不知道什么原因本人第一次用全文检索,请各位大哥大姐帮帮忙
解决方案 »
- 用sql建立目录
- 多对多的关系数据中,如何从多得到一(第一个匹配),求sql
- 关于数据分组问题?
- sqlserver
- 这样对数据库建表
- 一个有10万条记录的 UPDATE 要花12秒钟 吗? MEM 1G SQLSERVER
- sql2000数据库的存储过程如何调用oracle9i数据库中表?
- 一个不是很难,但我想不出简洁方法的问题?
- 用SQL SERVER 2000怎样做交叉表查询?放血了!
- SQL Server2000数据库和ASP
- 我取得了一个uniqueidentifier值,用SQL语句取得的,取得后是一个字符串,我想把它又写入另一个表,但是发行无法转换字符串到这个类型
- 求Microsoft.SQL.Server.2005(ALL) 简体中文版(DVD)下载地址
2) 建立全文目录 (sp_fulltext_catalog)
3) 在全文目录中注册需要全文索引的表 (sp_fulltext_table)
4) 指出表中需要全文索引的列名 (sp_fulltext_column)
5) 为表创建全文索引 (sp_fulltext_table)
6) 填充全文目录 (sp_fulltext_catalog)
---------********示例********-------------
以对pubs数据库的title和notes列建立全文索引,之后使用索引查询title列或notes列中包含有datebase 或computer字符串的图书名称: 在这之前,需要安装Microsoft Search服务,启动SQL server全文搜索服务
user pubs --打开数据库
go
--检查数据库pubs是否支持全文索引,如果不支持
--则使用sp_fulltext_database 打开该功能
if(select databaseproperty('pubs','isfulltextenabled'))=0
execute sp_fulltext_database 'enable' --建立全文目录FT_PUBS
execute sp_fulltext_catalog 'FT_pubs','create' --为title表建立全文索引数据元
execute sp_fulltext_table 'title','create','FT_pubs','UPKCL_titleidind' --设置全文索引列名
execute sp_fulltext_column 'title','title','add'
execute sp_fulltext_column 'title','notes','add' --建立全文索引
--activate,是激活表的全文检索能力,也就是在全文目录中注册该表
execute sp_fulltext_table 'title','activate' --填充全文索引目录
execute sp_fulltext_catalog 'FT_pubs','start_full'
go --检查全文目录填充情况
While fulltextcatalogproperty('FT_pubs','populateStatus') <> 0
begin --如果全文目录正处于填充状态,则等待30秒后再检测一次
waitfor delay '0:0:30'
end --全文目录填充完成后,即可使用全文目录检索 select title
form
where CONTAINS(title,'database')
or CONTAINS(title,'computer')
or CONTAINS(notes,'database')
or CONTAINS(notes,'database')
'--------------以下介绍一下全文操作类的系统存储过程
过程名称:sp_fulltext_service
执行权限:serveradmin或系统管理员
作 用:设置全文搜索属性
过程名称:sp_fulltext_catalog
执行权限:db_owner及更高角色成员
作 用:创建和删除一个全文目录,启动或停止一个全文目录的索引操作
过程名称:sp_fulltext_database
执行权限:db_owner角色成员
作 用:初始化全文索引或删除数据库中所有全文目录
过程名称:sp_fulltext_table
执行权限:db_ddladnmin或db_owner角色成员
作 用:将一个表标识为全文索引表或非全文索引表
过程名称:sp_fulltext_column
执行权限:db_ddladnmin角色成员
作 用:指出一个全文索引表中的那些列假如或退出全文索引
begin --如果全文目录正处于填充状态,则等待30秒后再检测一次
waitfor delay '0:0:30'
end
否则不会得到你想要的结果
(
id int identity(1,1) primary key,
nm varchar(100) unique not null,
sex varchar(10)
)
create UNIQUE index UQ__testIndex__0DAF0CB0
on testindex(nm)insert into testindex
select 'aaabbb','m' union all
select 'bbb','w' union all
select 'ccc','w' union all
select 'ddd','m'
insert into testindex
select '麦蒂未伤愈中途退出训练复出时间再度成疑','北京'
go
--创建全文目录
sp_fulltext_catalog 'abc','create'
go
--创建全文索引(‘表名‘,’创建/删除‘,’全文目录名‘,’约束名‘)
sp_fulltext_table 'testindex','create','abc','UQ__testIndex__0DAF0CB0'
go
--添加列到全文索引(‘表名‘,’列名‘,’添加/删除‘)
sp_fulltext_column 'testindex','nm','add' go
--建立全文索引
--activate,是激活表的全文检索能力,也就是在全文目录中注册该表
execute sp_fulltext_table 'testindex','activate'
go
--填充全文索引目录
execute sp_fulltext_catalog 'abc','start_full'
go--检查全文目录填充情况
While fulltextcatalogproperty('abc','populateStatus')<>0
begin--如果全文目录正处于填充状态,则等待30秒后再检测一次
waitfor delay '0:0:30'
end--全文目录填充完成后,即可使用全文目录检索
SELECT * FROM testindex WHERE CONTAINS(nm, '麦蒂') /*id nm sex
----------- --------------------------------------------- ------------------------------------------------ ----------
5 麦蒂未伤愈中途退出训练复出时间再度成疑 北京(所影响的行数为 1 行)
*/
insert into testindex
select '麦蒂未伤愈中途退出训练复出时间再度成疑12121','北京'
go
SELECT * FROM testindex WHERE CONTAINS(nm, '麦蒂')
-----No result
/*id nm sex
----------- --------------------------------------------- ------------------------------------------------ ----------
5 麦蒂未伤愈中途退出训练复出时间再度成疑 北京(所影响的行数为 1 行)
*/
go--填充全文索引目录
execute sp_fulltext_catalog 'abc','start_full'
go
--检查全文目录填充情况
While fulltextcatalogproperty('abc','populateStatus')<>0
begin--如果全文目录正处于填充状态,则等待30秒后再检测一次
waitfor delay '0:0:30'
end
SELECT * FROM testindex WHERE CONTAINS(nm, '麦蒂')go
/*id nm sex
----------- ---------------------------------------------------------------------------------------------------- ----------
6 麦蒂未伤愈中途退出训练复出时间再度成疑12121 北京
5 麦蒂未伤愈中途退出训练复出时间再度成疑 北京(所影响的行数为 2 行)*/
sp_fulltext_table 'testindex','drop'
go
sp_fulltext_catalog 'abc','drop'
go
drop table testIndex