SQL SERVER全文檢索的實(shí)現(xiàn)
SQL SERVER全文檢索的方法不少人都在問,下面就為您詳細(xì)介紹SQL SERVER全文檢索的實(shí)現(xiàn)方法,如果您對SQL SERVER全文檢索方面感興趣的話,不妨一看。
在本例中,對test數(shù)據(jù)庫book表中title列和notes列建立SQL SERVER全文檢索。
//首先先啟動(dòng)SQL Server的全文搜索服務(wù)。
use test //打開數(shù)據(jù)庫
go
//打開全文索引支持
execute sp_fulltext_database ‘enable’
//建立全文目錄ft_pubs
execute sp_fulltext_catalog ‘ft_test’,‘create’
//為titles表建立全文索引數(shù)據(jù)元,pk_title為book表中由主鍵所建立的***索引,此參數(shù)必須。
execute sp_fulltext_table ‘book’,‘create’,‘ft_test’,‘pk_title’
//設(shè)置全文索引列名
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語句的功能是在表所有列或指定列中搜索:
●一個(gè)字或短語;
●一個(gè)字或短語的前綴;
●與一個(gè)字相近的另一個(gè)字;
●一個(gè)字的派生字;
●一個(gè)重復(fù)出現(xiàn)的字。
CONTAINS語句的語法格式為:
CONTAINS({column *}),‘’) 其中,column說明被搜索列,使用時(shí)說明對表中所有全文索引列蓮行搜索
Contains_ search_ condition說明CONTAINS語句的搜索內(nèi)容,其語法格式為:
{||| |) [{|ANDIAND NOT|OR}}] [.n]
下面就simple_term和predix_term參數(shù)做一簡要說明:
simple— term指出CONTAINS語句所搜索的單字或短語,當(dāng)為一個(gè)短語時(shí),必須使用雙引號作為定界符。其格式為:
{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語句的功能是在一個(gè)表的所有列或指定列中搜索一個(gè)自由文本格式的字符串,并返回與該字符串匹配的數(shù)據(jù)行。所以,F(xiàn)REETEXT語句所執(zhí)行的功能又稱做自由式全文查詢。
FREETEXT語句的語法格式為:
FREETEXT({column * },‘freetext_string’)
其中,column說明被搜索列,使用*時(shí)說明對表中的所有全文索引列進(jìn)行搜索。Freetext_string參數(shù)指出所搜索的自由文本格式字符串。
例如,下面語句使用FREETEXT語句搜索book表中包含Successful Life字符串的數(shù)據(jù)行:
select title,notes
from book
where freetext (*,‘Successful Life’)
【編輯推薦】
帶您了解SQL Server觸發(fā)器的優(yōu)點(diǎn)