![](http://pic.cr173.com/up/2010-3/201032511394.png)
- 類型:PPC|WM平臺大。322KB語言:中文 評分:6.6
- 標(biāo)簽:
1.全文檢索可以對varchar,text,image型字段進(jìn)行檢索,但一個表最多只能建一個全文索引
2.如果使用傳統(tǒng)的模糊搜索會降低數(shù)據(jù)庫的性能,選擇全文索引來解決是比較好的方法!
3.創(chuàng)建全文索引演示
(1)打開全文索引支持,啟動SQL Server的全文搜索服務(wù)
use 數(shù)據(jù)庫名字
go
execute sp_fulltext_database 'enable'
(2)建表和初始化數(shù)據(jù)(說明:測試數(shù)據(jù)庫名稱為:myDBtest,測試表名稱為: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('汽車會飛。 {猜一種飲料} 答案:咖啡 (CAR,飛)')
insert into dbo.My_FullText(MyText) values('A和C誰比較高呢?答案:C比較高 (因?yàn)锳BCD A比C低)')
insert into dbo.My_FullText(MyText) values('茉莉花、太陽花、玫瑰花哪一朵花最沒力? 答案:茉莉花 (好一奪沒力[美麗]的茉莉花)')
insert into dbo.My_FullText(MyText) values('猩猩最討厭什么線? 答案:平行線。 平行線沒有相交(香蕉)')
insert into dbo.My_FullText(MyText) values('橡皮、老虎皮、獅子皮哪一個最不好? 答案:橡皮。 (橡皮差)')
insert into dbo.My_FullText(MyText) values('布和紙怕什么? 答案:布怕一萬,紙怕萬一。(不怕一萬,只怕萬一)')
insert into dbo.My_FullText(MyText) values('麒麟飛到北極會變成什么? 答案:冰淇淋。 原因:冰淇淋(冰麒麟)')
insert into dbo.My_FullText(MyText) values('1234567890 哪個數(shù)字最勤勞,哪個數(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('如果有一臺車,小明是司機(jī),小華坐在他右邊,小花坐在他后面,請問這臺車是誰的呢?? 答案:“如果”的')
(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)測試全文索引
select * from dbo.My_FullText where contains(MyText,'c')
搜索結(jié)果為:
結(jié)果為空。而事實(shí)上記錄中有包含“C”的卻搜索不出來,因?yàn)槟J(rèn)的斷詞語言是簡體中文,所以英文搜索不出來!
下面使用:
select * from dbo.My_FullText where contains(MyText,'汽車')
(5)刪除全文索引
直接刪除會出現(xiàn)如:
此時刪除主鍵,則依賴于主鍵的全文索引會自動刪除!