熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server 2000中全文檢索的使用

2013-11-15 14:35:32  來源: SQL Server 

  微軟的SQL Server數據庫是一個在中低端企業應用中占有廣泛市場的關系型數據庫系統它以簡單方便易用等特性深得眾多軟件開發人員和數據庫管理人員的鐘愛但SQL Server 以前的數據庫系統由於沒有全文檢索功能致使無法提供像文本內容查找此類的服務成為一個小小的遺憾從SQL Server 到如今的SQL Server 終於具備了全文檢索功能使用戶可以高效地檢索存儲在數據庫charvarchartextntextncharnvarchar等數據類型列中的文本數據
  
  建立全文索引
  
  在進行全文檢索之前必須先建立和填充數據庫全文索引為了支持全文索引操作SQL Server 新增了一些存儲過程和TransactSQL語句使用這些存儲過程創建全文索引的具體步驟如下(括號內為調用的存儲過程名稱)
  
   啟動數據庫的全文處理功能(sp_fulltext_
  
  database);
  
   建立全文檢索目錄(sp_fulltext_catalog);
  
  在全文檢索目錄中注冊需要全文索引的表(sp_fulltext_table);
  
   指出表中需要全文檢索的列名(sp_fulltext_
  
  column);
  
   為表創建全文索引(sp_fulltext_table);
  
   填充全文檢索目錄(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 bookcreate ft_testpk_title
  
  //設置全文索引列名
  
  execute sp_fulltext_column book title add
  
  execute sp_fulltext_column booknotes add
  
  //建立全文索引
  
  execute sp_fulltext_table book activate
  
  //填充全文索引目錄
  
  execute sp_fulltext_catalog ft_test start_full
  
  至此全文索引建立完畢
  
  進行全文檢索
  
  SQL Server 提供的全文檢索語句主要有CONTAINS和FREETEXTCONTAINS語句的功能是在表的所有列或指定列中搜索一個字或短語一個字或短語的前綴與一個字相近的另一個字一個字的派生字一個重復出現的字
  
  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列中包含databasecomputer字符串的圖書名稱及其注釋信息
  
  select title notes
  
  from book
  
  where contains(tilte database) or contains(notesdatabase)
  
  or contains(titlecomputer) or contains(notescomputer)
  
  FREETEXT語句的功能是在一個表的所有列或指定列中搜索一個自由文本格式的字符串並返回與該字符串匹配的數據行所以FREETEXT語句所執行的功能又稱做自由式全文查詢
  
  FREETEXT語句的語法格式為FREETEXT({column | * }freetext_string)
  
  其中column是被搜索列使用*時說明對表中的所有全文索引列進行搜索Freetext_string參數指出所搜索的自由文本格式字符串
  
  例如下面語句使用FREETEXT語句搜索Book表中包含Successful Life字符串的數據行
  
  select title notes
  
  from book
  
  where freetext(*Successful Life)

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22028.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.