熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

在什麼情況下使用全文索引呢?

2013-11-11 21:41:02  來源: Windows系統管理 

  啟動 Microsoft Search 服務
  開始菜單>SQL程序組>服務管理器>下拉筐>Microsoft Search 服務>啟動它
  
  \Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目錄裡建一個非空noisechs文件
  非空noisechs文件也有人說是空的noisechs文件但我每次都往裡寫幾個沒用的字母
  
  建立環境
  打開查詢分析器>執行下列腳本
  
  create database test 創建test數據庫
  use test       選擇test數據庫
  create table dali (ID int not null primary keyMyImage imageFileType varchar()FileNmae varchar()) 創建dali表
  dali表中 IdMyImageFileType 三列是必須的因為要對image列索引的話必須要有一個主鍵列一個image列一個存放文件類型的列
  我們知道在windows系統中文件類型是靠擴展名來區分的所以FileType列也就是用來放 文件的擴展名
  
  
  sp_fulltext_database enable 為全文索引啟用數據庫
  sp_fulltext_catalog My_FullDir create 創建一個叫My_FullDif的全文目錄
  
  declare @Key sysname ; select @Key=cname from syscolumns asysconstraints bsysobjects c where aid=object_id(dali) and aname=ID and aid=bid and nstid=cid and cname like PK%
  exec sp_fulltext_table dalicreateMy_FullDir@Key 這兩句是為全文索引對表進行標記
  
  sp_fulltext_column daliMyImageaddxFileType 這句是指定MyImage列為全文索引列FileType是類型列
  
  在c盤下放一個擴展名為doc的word文件一個擴展名為xls的excel文件一個擴展名為htm的網頁文件個擴展名為bmp的圖片
  共大家可根據實際情況放入!
  
  插入數據
  建立下面這個存儲過程
  
  CREATE PROCEDURE sp_textcopy
   @srvname  varchar ()
   @login   varchar ()
   @password  varchar ()
   @dbname   varchar ()
   @tbname   varchar ()
   @colname  varchar ()
   @filename  varchar ()
   @whereclause varchar ()
   @direction char()
  AS
  /* 這是使用textcopy工具將文件插入到數據庫中如果有前台工具可以用前台開發工具將文件插入這裡為了演示 */
  DECLARE @exec_str varchar ()
  SELECT @exec_str=textcopy /S +@srvname+ /U +@login+ /P +@password+ /D +@dbname+ /T+@tbname+ /C +@colname+ /W+@whereclause+ /F+@filename+ /+@direction
  EXEC masterxp_cmdshell @exec_str
  
  
  insert dali values(xdoc大力的doc) 其中第二列是 x 它是一個進制數對應image列是必須的不要寫null第三列是文件類型既擴展名
  
  sp_textcopy 你的服務器名sa你的密碼testdaliMyImagec:\大力的docdocwhere ID=I
  依次參數是實例名用戶名密碼數據庫名表名image列名路徑及文件名條件(你必須保證它只選擇一行)I
  
  insert dali values(xbmp圖片)
  sp_textcopy 你的服務器名sa你的密碼testdaliMyImagec:\圖片bmpwhere ID=I 注意條件是 ID=
  
  insert dali values(xxlsExcel文件)
  sp_textcopy 你的服務器名sa你的密碼testdaliMyImagec:\Excel文件xlswhere ID=I 注意條件是 ID=
  
  insert dali values(xhtm網頁)
  sp_textcopy 你的服務器名sa你的密碼testdaliMyImagec:\網where ID=I 注意條件是 ID=
  
  上面的語句要保證類型一樣路徑正確條件唯一正確應該就可以了
  
  填充全文索引
  
  sp_fulltext_table dalistart_full 第一個參數是表名第二個參數是啟動表的全文索引的完全填充
  
  可以開始你的實驗了
  
  select * from dali where contains(MyImageJ老師)
  select * from dali where contains(MyImage海老師)
  END
From:http://tw.wingwit.com/Article/os/xtgl/201311/8969.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.