SQL Server 2000中全文檢索的使用

2021-04-26 05:18:15 字數 2468 閱讀 3326

微軟的sql server資料庫是乙個在中低端企業應用中占有廣泛市場的關係型資料庫系統,它以簡單、方便、易用等特性深得眾多軟體開發人員和資料庫管理人員的鍾愛。但sql server 7.0以前的資料庫系統由於沒有全文檢索功能,致使無法提供像文字內容查詢此類的服務,成為乙個小小的遺憾。從sql server 7.0起,到如今的sql server 2000終於具備了全文檢索功能,使使用者可以高效地檢索儲存在資料庫char、varchar、text、ntext、nchar、nvarchar等資料型別列中的文字資料。

建立全文索引

在進行全文檢索之前,必須先建立和填充資料庫全文索引。為了支援全文索引操作,sql server 7.0新增了一些儲存過程和transact-sql語句。使用這些儲存過程建立全文索引的具體步驟如下(括號內為呼叫的儲存過程名稱):

1. 啟動資料庫的全文處理功能(sp_fulltext_

database);;

2. 建立全文檢索目錄(sp_fulltext_catalog);

3.在全文檢索目錄中註冊需要全文索引的表(sp_fulltext_table);

4. 指出表中需要全文檢索的列名(sp_fulltext_

column);;

5. 為表建立全文索引(sp_fulltext_table);;

6. 填充全文檢索目錄(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 『book』,『create』, 『ft_test』,『pk_title』

//設定全文索引列名

execute sp_fulltext_column 『book』, 『title』, 『add』

execute sp_fulltext_column 『book』,『notes』, 『add』

//建立全文索引

execute sp_fulltext_table 『book』, 『activate』

//填充全文索引目錄

execute sp_fulltext_catalog 『ft_test』, 『start_full』

至此,全文索引建立完畢。

進行全文檢索

sql server 2000提供的全文檢索語句主要有contains和freetext。contains語句的功能是在表的所有列或指定列中搜尋:乙個字或短語;乙個字或短語的字首;與乙個字相近的另乙個字;乙個字的派生字;乙個重複出現的字。

contains語句的語法格式為:

contains(), _condition>)

其中,column是搜尋列,使用「*」時說明對錶中所有全文索引列進行搜尋。contains_search_

condition 說明contains語句的搜尋內容,其語法格式為:

[}] [...n]

下面就******_term和prefix_term引數做簡要說明:

******_term是contains語句所搜尋的單字或短語,當搜尋的是乙個短語時,必須使用雙引號作為定界符。其格式為:

prefix_term說明contains語句所搜尋的字或短語字首,其格式為:

例如,下面語句檢索book表的title列和notes列中包含「database」或「computer」字串的圖書名稱及其注釋資訊:

select title, notes

from book

where contains(tilte, 『database』) or contains(notes,『database』)

or contains(title,『computer』) or contains(notes,『computer』)

freetext語句的功能是在乙個表的所有列或指定列中搜尋乙個自由文字格式的字串,並返回與該字串匹配的資料行。所以,freetext語句所執行的功能又稱做自由式全文查詢。

freetext語句的語法格式為:freetext(,『freetext_string』)

其中,column是被搜尋列,使用「*」時說明對錶中的所有全文索引列進行搜尋。freetext_string引數指出所搜尋的自由文字格式字串。

例如,下面語句使用freetext語句搜尋book表中包含「successful life」字串的資料行:

select title, notes

from book

where freetext(*,『successful life』) 

SQLSERVER2000技術規格

sqlserver2000技術規格 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔...

SQLSERVER2000啟動失敗

服務管理器中啟動sqlserver服務 彈出視窗的錯誤資訊是 本地計算機上的mssqlserver服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 效能日誌和警報 服務 1 解決方法 調整系統時間到你上一次能夠正常啟動的時間,啟動sqlserver服務,成功後,然後再把時間調回來。...

SQLSERVER2000技術規格

quote 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔案 32tb 夠大了吧,...