当前位置:首页 > 系统运维 > 正文内容

创建SQL Server全文检索的2方案

a8116255316年前 (2010-07-22)系统运维9

此文章主要向大家讲述的是创建SQL Server全文检索的正确操作方案,假如你对创建SQL Server全文检索的正确操作步骤有兴趣了解的话,以下的文章你就可以对其进行点击观看了,以下就是文章的主要方案的描述。

*** 一:先启动全文索引服务,查看当前数据库的状态SELECT DATABASEPROPERTY ('pubs','IsFulltextEnabled'),打开FullText功能sp_fulltext_databse 'enable',关闭此功能sp_fulltext_databse 'disable',在所有创建的表上建唯一索引(若已有主键索引可省),在表上点右键进入定义全文索引向导创建。

*** 二:1、首先创建一个全文目录,一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。每个数据库可以不包含全文目录或包含多个全文目录。as default参数表明把此全文目录作为默认的全文目录。

Create fulltext catalog DocumentCatalog as default 

2、然后创建唯一非聚集索引。

create unique index T_DocumentsContent_VerID on T_DocumentsContent(VerID) 

这个一般把你要全文索引的表上的主键作为唯一非聚集索引。该索引将强制插入列中的数据具有唯一性。一般都是主键符合这个要求。

3、最后一步就是创建全文索引

Create FULLTEXT INDEX ON T_DocumentsContent(DOCUCONTENT TYPE COLUMN ExtendedName)  key index T_DocumentsContent_VerID on DocumentCatalog  with change_tracking auto 

T_DocumentsContent:用于全文索引的表明

DocuContent:用于SQL Server全文检索的字段

假如用于SQL Server全文检索的字段是二进制流文件,那么要通过指定这个二进制流文件的扩展名由哪个列提供数据。如上例的Type Column ExtendedName,表明DocuContent的类型由ExtendedName列提供

key index用来指定全文索引表唯一键索引的名称

on DocumentCatalog:表明这个全文索引是建立在哪个全文目录上

with Change_Tracking:指定 SQL Server 是否维护一份对索引数据的全部更改的列表。更改跟踪不会记录通过 WRITETEXT 和 UPDATETEXT 进行的数据更改。他有几个选项

1. MANUAL: 指定是使用 SQL Server *** 按计划传播更改跟踪日志,还是由用户手动进行传播。

2.AUTO:指定在关联的表中修改了数据时,SQL Server 自动更新全文索引。默认值为 AUTO。

3.OFF [ ,NO POPULATION] 指定 SQL Server 不保留对索引数据的更改的列表。仅当ANGE_TRACKING 为 OFF 时,才能使用 NO POPULATION 选项。假如指定了 NO POPULATION,则 SQL Server 在创建索引后不会对其进行填充。

只有在用户使用 stART FULL 或 INCREMENTAL POPULATION 子句执行 ALTER FULLTEXT INDEX 命令后,才会填充索引。假如未指定 NO POPULATION,则 SQL Server 创建索引后将对其进行完全填充

当然假如需要使用全文索引需要把全文索引服务启动,就是SQL Server FullText Search这个服务。注意Sql Express版本不能使用全文索引。

最后剩下如何进行全文检索的查询了。在查询种我们不能使用like关键字来进行SQL Server全文检索,应该使用ContAIns谓词,他的之一个参数是你要全文检索的列名,可以指定多个列,用都好分割,并且必须用小括号括起来,第二个参数是需要搜索的文本,第二个参数前后必须用单引号包含起来,里面查询的文本可用引号包含,并且可以使用通配符和条件语句,如

where Contains(a.Content, '"中国*" or "武汉"')

条件语句可以用符号来 *** 如AND可以用&来代替,具体参看SQLServer的帮助文档。

第三个参数是查询的语言。假如一个列里面存储了多种语言,允许用户指定搜索的语言。

除了Contains谓词可以用于全文检索FreeText也可以进行SQL Server全文检索,但次谓词用于搜索含有基于字符的数据类型的列,好像不能搜索二进制流的列,但帮助文档却又说支持Image的列。但是FreeText的搜索精度没有Contains的谓词高,推荐使用Contains谓词。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/22185.html

分享给朋友:

“创建SQL Server全文检索的2方案” 的相关文章

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

windows 7系统怎么取消禁ping命令?

windows 7系统怎么取消禁ping命令?

当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Windows 7默认在防火墙里禁止了。 1、查看主机ip 打开“开始”程序中的“附件”,找到“命令提示符”打开。输入命令:ipconfig,可以看到本机的ip是192.1...

windows 7为什么老掉线 windows 7使用迅雷或快车下载的时候老掉

windows 7为什么老掉线 windows 7使用迅雷或快车下载的时候老掉

经过几天的测试后发现,Windows 7用户反映的情况确实存在,但并没有达到“频繁”的情况。同时,也并非是迅雷或快车抢了带宽。(即便是抢了带宽,表现的形式也是页面打开慢,而非是掉线),寻找问题的原因过程中,我们认为是Windows 7系统对于网卡的电源管理的默认设置造成的。 下面,就以Window...

Ubuntu系统上挂载U盘和Windows分区问题的解决实例

Ubuntu系统上挂载U盘和Windows分区问题的解决实例

Ubuntu挂载U盘问题 复制代码代码如下: 老是说special device /dev/sdb1 does not exist,无比郁闷 复制代码代码如下:#fdisk /dev/sda 复制代码代码如下: 是有个 这个咚咚。。。。 复制代码代码如下: 最后: 复制代码代码如下:...