我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 数据库 > SQL Server > SQLServer2000中全文检索的使用
热门文章排行
热门文章排行 服务器应用:用serv-u建立FTP一(11-16)
破解局域网内不能互访的六大经典问题(12-28)
启动与关闭服务器(12-28)
服务器架站务实:零起步学FTP概念篇(11-22)
使用WindowsXP及IIS5.1配置Web服务器(11-22)
精采文章排行
精采文章排行 SQL Server 2000企业版安装教程(1)(11-16)
SQL数据操作基础(初级1)(11-16)
SQL数据操作基础(中级1)(11-16)
mssql 数据库的备份与恢复(11-16)
在Windows Server 2003中为Web站点(11-16)
技术专题推荐
网管论坛交流
 

SQLServer2000中全文检索的使用 

作者:佚名   来源:Linux 宝库   点击:   日期:2006-11-22


-->


  微软的SQL Server数据库是一个在中低端企业应用中占有广泛市场的关系型数据库系统,它以简单、方便、易用等特性深得众多软件开发人员和数据库管理人员的钟爱。但SQL Server 7.0以前的数据库系统由于没有全文检索功能,致使无法提供像文本内容查找此类的服务,成为一个小小的遗憾。从SQL Server 7.0起,到如今的SQL Server 2000终于具备了全文检索功能,使用户可以高效地检索存储在数据库char、varchar、text、ntext、nchar、nvarchar等数据类型列中的文本数据。
  
  建立全文索引
  
  在进行全文检索之前,必须先建立和填充数据库全文索引。为了支持全文索引操作,SQL Server 7.0新增了一些存储过程和Transact-SQL语句。使用这些存储过程创建全文索引的具体步骤如下(括号内为调用的存储过程名称):
  
  1. 启动数据库的全文处理功能(sp_fulltext_
  
  database);;
  
  2. 建立全文检索目录(sp_fulltext_catalog);
  
  3.在全文检索目录中注册需要全文索引的表(sp_fulltext_table);
  
  4. 指出表中需要全文检索的列名(sp_fulltext_
  
  column);;
  
  5. 为表创建全文索引(sp_fulltext_table);;
  
  6. 填充全文检索目录(sp_fulltext_catalog)。
  
  下面举例说明如何创建全文索引,在本例中,对Test数据库Book表中Title列和Notes列建立全文索引。
  
  use test //打开数据库
  
  //打开全文索引支持,启动SQL Server的全文搜索服务
  
  execute sp_fulltext_database ‘enable’
  
  //建立全文检索目录ft_test
  
  execute sp_fulltext_catalog ‘ft_test’, ‘create’
  
  为Title列建立全文索引数据元,pk_title为Book表中由主键所建立的唯一索引,这个参数是必需的。
  
  execute sp_fulltext_table ‘book’,‘create’, ‘ft_test’,‘pk_title’
  
  //设置全文索引列名
  
  execute sp_fulltext_column ‘book’, ‘title’, ‘add’
  
  execute sp_fulltext_column ‘book’,‘notes’, ‘add’
  
  //建立全文索引
  
  execute sp_fulltext_table ‘book’, ‘activate’
  
  //填充全文索引目录
  
  execute sp_fulltext_catalog ‘ft_test’, ‘start_full’
  
  至此,全文索引建立完毕。
  
  进行全文检索
  
  SQL Server 2000提供的全文检索语句主要有CONTAINS和FREETEXT。CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。
  
  CONTAINS语句的语法格式为:
  
  CONTAINS({column | *}),   
  _condition>)
  
  其中,column是搜索列,使用“*”时说明对表中所有全文索引列进行搜索。Contains_search_
  
  condition 说明CONTAINS语句的搜索内容,其语法格式为:
  
  {||||}[{{AND|AND NOT|OR}}] [...n]
  
  下面就simple_term和prefix_term参数做简要说明:
  
  simple_term是CONTAINS语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:
  
  {‘word’|“ phrase”}
  
  prefix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:
  
  {“word*” | “phrase*”}
  
  例如,下面语句检索Book表的Title列和Notes列中包含“database”或“computer”字符串的图书名称及其注释信息:
  
  select title, notes
  
  from book
  
  where contains(tilte, ‘database’) or contains(notes,‘database’)
  
  or contains(title,‘computer’) or contains(notes,‘computer’)
  
  FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。
  
  FREETEXT语句的语法格式为:FREETEXT({column | * },‘freetext_string’)
  
  其中,column是被搜索列,使用“*”时说明对表中的所有全文索引列进行搜索。Freetext_string参数指出所搜索的自由文本格式字符串。
  
  例如,下面语句使用FREETEXT语句搜索Book表中包含“Successful Life”字符串的数据行:
  
  select title, notes
  
  from book
  
  where freetext(*,‘Successful Life’)
  







文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·Oracle数据库的安全策略分析(三) ·Oracle数据库的安全策略分析(二)
·SCO unix 下定时备份 Oracle dmp 文件 ·Oracle 9i密码策略--密码重用规则
·Oracle SQL 内置函数的使用方法及结果 ·WindowsXP下安装Oracle9i问题二则

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。