本人想做一个全文检索,比如c盘下包括一些doc ,xls ,pdf ,htm...文件,我想查找出这些文件里包含着“某些字” 的这些文件出来,小弟是菜鸟,不太懂。查看了一些东西,调试不出结果。高手们先看看:
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('dali')   and   a.name='ID'   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,'海老师')   我查不到结果:哪位大侠教一下小弟 MSN:[email protected]