SQL SERVER全文檢索的實現
SQL SERVER全文檢索的方法不少人都在問,下面就為您詳細介紹SQL SERVER全文檢索的實現方法,如果您對SQL SERVER全文檢索方面感興趣的話,不妨一看。
在本例中,對test數據庫book表中title列和notes列建立SQL SERVER全文檢索。
//首先先啟動SQL Server的全文搜索服務。
use test //打開數據庫
go
//打開全文索引支持
execute sp_fulltext_database ‘enable’
//建立全文目錄ft_pubs
execute sp_fulltext_catalog ‘ft_test’,‘create’
//為titles表建立全文索引數據元,pk_title為book表中由主鍵所建立的***索引,此參數必須。
execute sp_fulltext_table ‘book’,‘create’,‘ft_test’,‘pk_title’
//設置全文索引列名
execute sp_fulltext_eolumn ‘book’,‘title’,‘ add’
execute sp_fulltext_ column ‘book’,‘notes’,‘add’
//建立全文索引
execute sp_fulltexLtable ‘book’,‘activate’
//填充全文索引目錄
execute sp_fulltext_ catalog ‘ft_test’,‘start_ full’
go
至此,全文索引建立完畢。
3.2 全文檢索
SQL Server 2000提供的全文檢索語句主要有CONTAINS和FREETEXT。CONTAINS語句的功能是在表所有列或指定列中搜索:
●一個字或短語;
●一個字或短語的前綴;
●與一個字相近的另一個字;
●一個字的派生字;
●一個重復出現的字。
CONTAINS語句的語法格式為:
CONTAINS({column *}),‘’) 其中,column說明被搜索列,使用時說明對表中所有全文索引列蓮行搜索
Contains_ search_ condition說明CONTAINS語句的搜索內容,其語法格式為:
{||| |) [{|ANDIAND NOT|OR}}] [.n]
下面就simple_term和predix_term參數做一簡要說明:
simple— term指出CONTAINS語句所搜索的單字或短語,當為一個短語時,必須使用雙引號作為定界符。其格式為:
{word | “phrase”}
predix_term說明CONTAINS語句所搜索的字或短語前綴,其格式為:
{“word * ”| “phrase ”}
例如,下面語句檢索b0ok表的title列和notes列中包含database或computer字符串的圖書名稱及其注釋信息:
select title,notes from book
where contains(tilte,‘database’)or contains(notes,‘datable’)
or contains(title,‘computer’)or contains(notes,‘computer’)
FREETEXT語句的功能是在一個表的所有列或指定列中搜索一個自由文本格式的字符串,并返回與該字符串匹配的數據行。所以,FREETEXT語句所執行的功能又稱做自由式全文查詢。
FREETEXT語句的語法格式為:
FREETEXT({column * },‘freetext_string’)
其中,column說明被搜索列,使用*時說明對表中的所有全文索引列進行搜索。Freetext_string參數指出所搜索的自由文本格式字符串。
例如,下面語句使用FREETEXT語句搜索book表中包含Successful Life字符串的數據行:
select title,notes
from book
where freetext (*,‘Successful Life’)
【編輯推薦】