zoukankan      html  css  js  c++  java
  • 如何使用sql的全文检索功能


        
        
      1、启动   Microsoft   Search   服务  
       
            开始菜单-->SQL程序组-->服务管理器-->下拉筐-->Microsoft   Search   服务-->启动它  
       
       
       
      2、  
       
          ..\Microsoft   SQL   Server\MSSQL\FTDATA\SQLServer\Config\目录里建一个非空noise.chs文件  
       
          非空noise.chs文件,也有人说是空的noise.chs文件,但我每次都往里写几个没用的字母。  
       
       
       
      3、建立环境  
       
            打开查询分析器-->执行下列脚本:  
       
      --------------------------------------------  
       
      create   database   test   ---创建test数据库  
       
      use   test                           ---选择test数据库  
       
      create   table     dali   (ID   int   not   null   primary   key,MyImage   image,FileType   varchar(255),FileNmae   varchar(255))   ---创建dali表  
       
      --dali表中   Id,MyImage,FileType   三列是必须的,因为要对image列索引的话,必须要有一个主键列,一个image列,一个存放文件类型的列  
       
      --我们知道在windows系统中文件类型是靠扩展名来区分的所以FileType列也就是用来放   文件的扩展名  
       
      --------------------------------------------  
       
       
       
      sp_fulltext_database   'enable'   --为全文索引启用数据库  
       
      sp_fulltext_catalog   'My_FullDir',   'create'     ---创建一个叫My_FullDif的全文目录  
       
       
       
      declare   @Key   sysname   ;   select   @Key=c.name   from   syscolumns   a,sysconstraints   b,sysobjects   c   where   a.id=object_id('a')   and   a.name='a'   and   a.id=b.id   and   b.constid=c.id   and   c.name   like   'PK%'  
       
      exec   sp_fulltext_table   'dali','create','My_FullDir',@Key     ----这两句是为全文索引,对表进行标记  
       
       
       
      sp_fulltext_column   'dali','MyImage','add',0x0804,'FileType'     ---这句是指定MyImage列为全文索引列,FileType是类型列  
       
      ------------------------------------------------  
       
      4、在c盘下放一个扩展名为doc的word文件,一个扩展名为xls的excel文件,一个扩展名为htm的网页文件,个扩展名为bmp的图片  
       
            共4个,大家可根据实际情况放入!  
       
       
       
      5、插入数据  
       
          建立下面这个存储过程  
       
      --------------------------------------------------  
       
      CREATE   PROCEDURE   sp_textcopy    
       
          @srvname         varchar   (30),    
       
          @login             varchar   (30),    
       
          @password         varchar   (30),    
       
          @dbname             varchar   (30),    
       
          @tbname             varchar   (30),    
       
          @colname         varchar   (30),    
       
          @filename         varchar   (30),    
       
          @whereclause   varchar   (40),    
       
          @direction     char(1)    
       
      AS    
       
      /*   这是使用textcopy工具将文件插入到数据库中,如果有前台工具可以用前台开发工具将文件插入,这里为了演示   */  
       
      DECLARE   @exec_str   varchar   (255)    
       
      SELECT   @exec_str='textcopy   /S   '+@srvname+'   /U   '+@login+'   /P   '+@password+'   /D   '+@dbname+'   /T'+@tbname+'   /C   '+@colname+'   /W"'+@whereclause+'"   /F"'+@filename+'"   /'+@direction  
       
      EXEC   master..xp_cmdshell   @exec_str  
       
      ----------------------------------------------------  
       
       
       
      insert   dali   values(1,0x,'doc','大力的doc')   ---其中第二列是   0x   它是一个16进制数对应image列,是必须的,不要写null,第三列是文件类型,既扩展名  
       
       
       
      sp_textcopy   '你的服务器名','sa','你的密码','test','dali','MyImage','c:\大力的doc.doc','where   ID=1','I'  
       
      -------依次参数是:实例名,用户名,密码,数据库名,表名,image列名,路径及文件名,条件(你必须保证它只选择一行),I  
       
      ---------------------------------------------------------------------------------------------------------------------  
       
      insert   dali   values(2,0x,'bmp','图片')  
       
      sp_textcopy   '你的服务器名','sa','你的密码','test','dali','MyImage','c:\图片.bmp','where   ID=2','I'   --注意条件是   ID=2  
       
       
       
      insert   dali   values(3,0x,'xls','Excel文件')  
       
      sp_textcopy   '你的服务器名','sa','你的密码','test','dali','MyImage','c:\Excel文件.xls','where   ID=3','I'   --注意条件是   ID=3  
       
       
       
      insert   dali   values(4,0x,'htm','网页')  
       
      sp_textcopy   '你的服务器名','sa','你的密码','test','dali','MyImage','c:\网页.htm','where   ID=4','I'   --注意条件是   ID=4  
       
       
       
      ----------上面的语句,要保证类型一样,路径正确,条件唯一正确应该就可以了  
       
       
       
      6、填充全文索引  
       
       
       
      sp_fulltext_table   'dali','start_full'   ---第一个参数是表名,第二个参数是启动表的全文索引的完全填充  
       
       
       
      7、可以开始你的实验了  
       
       
       
      select   *   from   dali   where   contains(MyImage,'J老师')  
       
       
       
      select   *   from   dali   where   contains(MyImage,'海老师')  
       
       
       
      ------END----------  
       
      --调试环境:SQLServer2K、Windows2Kas  

  • 相关阅读:
    samba安装和配置
    linux下打包命令的使用
    Linux目录结构简析
    Linux服务器的安装
    linux下定时任务设置
    创建表空间并授权
    selenium2.0(WebDriver) API
    selenium + python之元素定位
    Linux实战教学笔记13:定时任务补充
    Linux实战教学笔记11:linux定时任务
  • 原文地址:https://www.cnblogs.com/iclotus/p/779433.html
Copyright © 2011-2022 走看看