使用sql server中的全文索引

原创 2004年09月11日 15:06:00

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

SqlServer 全文索引创建及测试

-- 创建测试表 -- DROP TABLE FullTextIndexing CREATE TABLE FullTextIndexing ( ID INT IDENTITY(1,1) NOT NU...
  • kk185800961
  • kk185800961
  • 2015-04-13 09:22:32
  • 7172

Sql server 全文索引 用法示例

理論部份 前言       在数据库中快速搜索数据,使用索引可以提高搜索速度,然而索引一般是建立在数字型或长度比较短的文本型字段上的,比如说编号、姓名等字段,如果建立在长度比较长的文本型字段上,更新索...
  • skydxd
  • skydxd
  • 2012-07-02 11:10:24
  • 3254

Sqlserver2008及以上使用全文索引排除干扰词

SqlServer2008及以上的全文索引干扰词不同于SqlServer2005及以前,不再使用干扰词文件,而是使用非索引字表;非索引字表存储在resource中。系统允许用户使用系统非索引字表,也允...
  • jokeesloat
  • jokeesloat
  • 2017-11-21 15:07:59
  • 142

针对SQL2008全文索引查不到数据的…

在网上查了很多关于全文索引查不到数据的问题。 上面说是干扰词的问题,需要修改相应的文件,但是SQL2008的文件又和SQL2005版本的位置什么的不一样,需要用SQL语句进行修改,但是用SQL语句提示...
  • lovejesuslove
  • lovejesuslove
  • 2016-03-21 10:54:56
  • 760

SQLserver2008全文检索使用方法

一、开启SQL Full-text服务: 保证 SQL Full-text Filter Daemon Launcher服务处于开启状态,不同版本SQLServer全文检索服务名称可能稍...
  • xiaogechengxuyuan
  • xiaogechengxuyuan
  • 2013-09-01 16:17:39
  • 1361

全文索引原理和一个完整的SQL SERVER数据库全文索引的示例

全文检索是对大数据文本进行索引,在建立的索引中对要查找的单词进行进行搜索,定位哪些文本数据包括要搜索的单词。因此,全文检索的全部工作就是建立索引和在索引中搜索定位,所有的工作都是围绕这两个来进行的。下...
  • hitluowei
  • hitluowei
  • 2011-11-23 14:57:51
  • 2323

如何获得数据库里有多少个全文索引。删除全文索引的方法 SQL server 2005

如何获得数据库里有多少个全文索引。删除全文索引的方法 SQL server 2005今天使用命令备份数据库的时候发生了异常:Msg 3007, Level 16, State 1, Line 4The...
  • daxialv
  • daxialv
  • 2011-03-22 16:05:00
  • 939

全文索引与普通 sql server 索引的区别

全文索引 普通 SQL Server 索引 存储...
  • caffery
  • caffery
  • 2007-11-28 15:36:00
  • 618

SQL Server全文索引的个人总结(下)-关于中文分词

SQL Server全文索引的个人总结(下)-关于中文分词 在使用SQL Search的过程中,还发现了一个问题:它对中文,是按字分词的,下面我解释一下:比如对博客堂成员很多是MVP这句话,假如一个个...
  • littlehb
  • littlehb
  • 2007-04-17 13:21:00
  • 1925

SQL Server2000全文索引心得

SQL Server2000全文索引心得试想,如果你开了家药铺,第一年在纸上写下1,2,3,4,5号抽屉放黄胆.9,52,7号抽屉中放灵芝,47,25,36,87号抽屉中放天麻...............
  • sd_lichangyou
  • sd_lichangyou
  • 2007-04-11 16:18:00
  • 891
收藏助手
不良信息举报
您举报文章:使用sql server中的全文索引
举报原因:
原因补充:

(最多只允许输入30个字)