
- 類型:PPC|WM平臺(tái)大小:322KB語(yǔ)言:中文 評(píng)分:6.6
- 標(biāo)簽:
1.全文檢索可以對(duì)varchar,text,image型字段進(jìn)行檢索,但一個(gè)表最多只能建一個(gè)全文索引
2.如果使用傳統(tǒng)的模糊搜索會(huì)降低數(shù)據(jù)庫(kù)的性能,選擇全文索引來解決是比較好的方法!
3.創(chuàng)建全文索引演示
(1)打開全文索引支持,啟動(dòng)SQL Server的全文搜索服務(wù)
use 數(shù)據(jù)庫(kù)名字
go
execute sp_fulltext_database 'enable'
(2)建表和初始化數(shù)據(jù)(說明:測(cè)試數(shù)據(jù)庫(kù)名稱為:myDBtest,測(cè)試表名稱為:My_FullText)
--建表
USE [myDBTest]
GO
CREATE TABLE My_FullText(
ID [int] IDENTITY(1,1) NOT NULL,
MyText [varchar](256) NOT NULL
)
GO
----全文索引只能創(chuàng)建在唯一的列上
--全文索引不能建立在視圖上,只能建立在有唯一索引的基礎(chǔ)表上。
alter table dbo.My_FullText
add constraint pk_FullText primary key (ID)
Go
----插入數(shù)據(jù)
insert into dbo.My_FullText(MyText) values('汽車會(huì)飛。 {猜一種飲料} 答案:咖啡 (CAR,飛)')
insert into dbo.My_FullText(MyText) values('A和C誰(shuí)比較高呢?答案:C比較高 (因?yàn)锳BCD A比C低)')
insert into dbo.My_FullText(MyText) values('茉莉花、太陽(yáng)花、玫瑰花哪一朵花最沒力? 答案:茉莉花 (好一奪沒力[美麗]的茉莉花)')
insert into dbo.My_FullText(MyText) values('猩猩最討厭什么線? 答案:平行線。 平行線沒有相交(香蕉)')
insert into dbo.My_FullText(MyText) values('橡皮、老虎皮、獅子皮哪一個(gè)最不好? 答案:橡皮。 (橡皮差)')
insert into dbo.My_FullText(MyText) values('布和紙怕什么? 答案:布怕一萬,紙怕萬一。(不怕一萬,只怕萬一)')
insert into dbo.My_FullText(MyText) values('麒麟飛到北極會(huì)變成什么? 答案:冰淇淋。 原因:冰淇淋(冰麒麟)')
insert into dbo.My_FullText(MyText) values('1234567890 哪個(gè)數(shù)字最勤勞,哪個(gè)數(shù)字最懶惰? 答案:1懶惰;2勤勞。 (1不做2不休)')
insert into dbo.My_FullText(MyText) values('怎樣使麻雀安靜下來? 答案:壓它一下。 原因:鴉雀無聲(壓雀無聲)')
insert into dbo.My_FullText(MyText) values('小白加小白等于什么?答案:小白兔 (TWO)')
insert into dbo.My_FullText(MyText) values('餃子是男人還是女人? 答案:男人 (餃子有包皮 )')
insert into dbo.My_FullText(MyText) values('如果有一臺(tái)車,小明是司機(jī),小華坐在他右邊,小花坐在他后面,請(qǐng)問這臺(tái)車是誰(shuí)的呢?? 答案:“如果”的')
(3)創(chuàng)建全文索引
注意:如果不能創(chuàng)建全文索引,有可能是缺乏某些組件,需要下載補(bǔ)丁:
SQL Server 2005的SP2補(bǔ)丁文件名為:SQLServer2005SP2-KB921896-x64-CHS.exe,http://www.microsoft.com/downloads/details.aspx?familyid=D07219B2-1E23-49C8-8F0C-63FA18F26D3A&displaylang=zh-cn )
(4)測(cè)試全文索引
select * from dbo.My_FullText where contains(MyText,'c')
搜索結(jié)果為:
結(jié)果為空。而事實(shí)上記錄中有包含“C”的卻搜索不出來,因?yàn)槟J(rèn)的斷詞語(yǔ)言是簡(jiǎn)體中文,所以英文搜索不出來!
下面使用:
select * from dbo.My_FullText where contains(MyText,'汽車')
(5)刪除全文索引
直接刪除會(huì)出現(xiàn)如:
此時(shí)刪除主鍵,則依賴于主鍵的全文索引會(huì)自動(dòng)刪除!