author:david euler.
date:2004/09/11
email:de_euler-david@yahoo.com.cn
有任何问题,请与我联系:)
一般情况,使用sql server中的全文索引,经过大体4个步骤:
1).安装full text search全文索引服务;
2).为数据表建立full text catalog全文索引目录;
3).进行full text catalog的population操作(使全文索引与数据表内容同步);
4).使用全文索引进行查询。
为了在数据表内容更新时全文索引数据库的内容也保持最新,可以通过第5步建立full text catalog 的population自动操作schedule.
1.sql server默认不安装full text search service,需要安装时选择装上才可以使用。如果安装了full text search service,那么sql server enterprise manager(企业管理器)中,展开一个数据库,会有一个full text catalogs;选中一个数据库,右键菜单的“新建“中有一个new full text catalog.并且选中任意一个表格,点右键,会有一个full-text index table(全文索引表)的菜单可以使用。如果full text search service没有安装,那么这个菜单是灰色的。
2.为表建立full text catalog.假设数据库coredb中有一个表mybbs,这个表存储的是一个论坛所有帖子的id,标题(title),作者(author),内容(content)等。我们选中表mybbs,点右键,new full text catalog,选择content作为全文索引的字段,建立新的full text catalog,取名为content.
3.到这个时候,只是建立了full text catalog,并不能使用全文索引。需要使全文目录中的内容与数据库索引表的内容相一致,这一步通过full population或incremental population来实现:企业管理器中展开数据库coredb,双击full-text catalog,会看到有一个名为content的全文目录,选中右击,点start full population或start incremental population,此时即可使用索引功能。
4.使用索引功能:
select * from mybbs where contains(content,”windows”);
此语句在mybbs表的全文索引content中,查询含有windows字符串的记录。
5.以后数据库中的索引表有更新时,都需要进行population同步操作,全文查询的内容才是新的数据表中的内容。因此我们可以设定sql server自动进行population操作:右击名为content的full text catalog,schedules,new catalog schedules,输入名字,选中enabled选项,可以设置计划任务的执行频率,可设置每次启动sql server agent的时候启动,也可以设置执行一次,或者设置重复执行,重复执行里面可以设置执行频率为月,周,日,可以设置每天若干小时执行一次。(这样只要service里面启动了sql server agent,population同步计划都会自动执行)
总结一下,通过安装全文索引服务,建立数据表的全文索引目录,同步全文索引数据库之后,即可开始使用全文索引查询。可通过建立full text catalog的自动population schedule来自动同步索引数据库。
参考资料:sql server自带的帮助文档“sql server books online“.
full-text catalogs and indexes
full-text indexes
full-text search
microsoft search service
full-text querying support
