程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLService2000的全文搜索的整理

SQLService2000的全文搜索的整理

編輯:關於SqlServer
全文搜索的整理:
  1 啟動 Microsoft Search 服務
  開始菜單SQL程序組服務管理器下拉筐Microsoft Search 服務啟動它
  ---通常在服務的中已經啟動了。
  2 ..Microsoft SQL ServerMSSQLFTDATASQLServerConfig目錄裡建一個非空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列,一個存放文件類型的列
  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盤下放一個擴展名為htm的網頁文件index.Html
  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
  6 insert dali values(1,0x,'htm','網頁')
  sp_textcopy 'GAOLONG','gaolong1','831001','test','dali','MyImage','c:index.Html','where ID=1','I'
  依次參數是:服務器名(不是實例名),用戶名,密碼,數據庫名,表名,image列名,路徑及文件名,條件(你必須保證它只選擇一行),
  這兒常見問題:
  (1)結果顯示
  output
  'textcopy' 不是內部或外部命令,也不是可運行的程序
  或批處理文件。


  Null
  解決辦法:就到 C:Program FilesMicrosoft SQL ServerMSSQLBinn
  目錄下拷備 textcopy.exe到:
  C:Program FilesMicrosoft SQL Server80ToolsBinn
  (2)結果顯示
  DB-Library Error 10004: 無法連接: SQL Server 不可用或不存在。 沒有找到指定的 SQL Server。
  ERROR: Could not connect to SQL Server 'pr'
  解決辦法:服務器的相關的登陸參數不對,可按實際情況調整。
  7 填充全文索引
  sp_fulltext_table 'dali','start_full'
  8 測試
  select * from dali where contains(MyImage,'標題')
  
  以上是在查詢分析器中操作,還可用其他的方法操作:
  1、打開NorthWind數據庫,右鍵Products表,選擇“全文索引表”,“在表上定義全文索引”,為其創建全文目錄。在“全文索引向導”中,選擇你需要全文查詢條件的列(可以是文本或圖像),我們選擇Productname和QuantityPerUnit列。然後下一步,輸入一個新的目錄proCatalog,點擊下一步。在填充調度一項裡,我們暫時不建立填充調度。接著“下一步”,全成全文索引向導。完成後,我們可以看到在“全文目錄”裡,多了一個全文目錄proCatalog。右鍵proCatalog屬性,可以看到其狀態、表、調度情況。
  2、右鍵全文目錄proCatalog, “啟動完全填充”,系統會出現“全文目錄填充成功啟動”。
  3、這時,我們可以使用Transact-SQL進行全文檢索了,我們使用CONTAINS、FREETEXT等謂詞。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved