SQL Server建立全文索引–简单描述,不累赘
需要SQL Server 2000 及其以后的版本才支持~~
其实非常简单的,不用再额外安装什么插件。
首先,确认 SQL Server 2000 的全文检索功能可用,最简单的方法就是在企业管理器中,随便打开一个数据库到表,随便选中一个表,右键–查看 “全文索引表”选项是否为灰色,若为灰色,则此功能尚未开启,如已经可选,跳过下步。
开启全文检索功能:功能的关闭主要是是SQL Server 2000 的全文检索服务关闭了,需要在 我的电脑 上右键—管理—服务,找到 Microsoft Search,右键启动,最好修改其属性,再设置启动类型为自动。然后在查询管理器中 运行 execute sp_fulltext_database 'enable'
,再去企业管理器中右键查看,就会发现已经可以使用SQL Server 2000 的全文检索了(如果在服务中找不到此服务,就是该服务并未安装,需要安装后再开启)。
如果SQL SERVER的全文索引功能已经可用,直接进入此步进行布置,在企业管理器中找到需要建立全文索引的表(此表一定要有唯一索引,若没有,可以先创建一个),右键—选择“全文索引表”—“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),在需要的列前打上对钩。然后下一步,输入一个新的目录名,这个就是全文索引名,可以随便起,自己熟悉就好了,这里比如我们取articleinfo_fk,点击下一步。在填充调度一项里,我们可以暂时先不建立填充调度,再下一步,完成但是还没完,我们需要在左侧的菜单里找到“全文目录”,在里边找到我们刚建立的全文索引-articleinfo_fk,右键–启动完全填充,系统会提示“全文目录填充成功启动”;此时才算大功告成
然后,我们只要在语句里尽情的使用就可以了~
select top 100 * from articleinfo where 1=1 and FREETEXT(列名1,’马化腾’)
select count(*) from articleinfo where 1=1 and CONTAINS(*,’马化腾|腾讯’)
关于FREETEXT和CONTAINS的详细使用用法,可以到微软官方查看:http://msdn.microsoft.com/zh-cn/library/ms187787.aspx ;根据个人检验来看,FREETEXT是很模糊的查询,CONTAINS比较精确,建议大家还是使用CONTAINS较好。另外还有CONTAINSTABLE、FREETEXTTABLE也可以使用,大家慢慢研究吧~~~