全文索引--海量數據模糊查詢


1.全文檢索(Full-Text Indexes)可以對varchar,text,image型字段進行檢索,一個表最多只能建一個全文索引

2.如果使用傳統的模糊搜索會降低數據庫的性能,選擇全文索引來解決是比較好的方法!

3.創建全文索引演示

(1)打開全文索引支持,啟動SQL Server的全文搜索服務 

 

use 數據庫名字
go
execute sp_fulltext_database 'enable'

(2)建表和初始化數據(說明:測試數據庫名稱為:myDBTest,測試表名稱為:My_FullText)

--建表

USE [myDBTest]
GO

CREATE TABLE My_FullText(
ID [int] IDENTITY(1,1) NOT NULL,
MyText [varchar](256) NOT NULL
)
GO

----全文索引只能創建在唯一的列上

--全文索引不能建立在視圖上,只能建立在有唯一索引的基礎表上。

alter table dbo.My_FullText 
add constraint pk_FullText primary key (ID)
Go

----插入數據

insert into dbo.My_FullText(MyText) values('汽車會飛。 {猜一種飲料} 答案:咖啡 (CAR,飛)')
insert into dbo.My_FullText(MyText) values('A和C誰比較高呢?答案:C比較高 (因為ABCD 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 哪個數字最勤勞,哪個數字最懶惰? 答案: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('如果有一台車,小明是司機,小華坐在他右邊,小花坐在他后面,請問這台車是誰的呢?? 答案:“如果”的')

(3)創建全文索引

注意:如果不能創建全文索引,有可能是缺乏某些組件,需要下載補丁:

SQL Server 2005SP2補丁文件名為:SQLServer2005SP2-KB921896-x64-CHS.exehttp://www.microsoft.com/downloads/details.aspx?familyid=D07219B2-1E23-49C8-8F0C-63FA18F26D3A&displaylang=zh-cn )

 

(4)測試全文索引(全文索引查詢使用contains和Freetext進行查詢)

select * from dbo.My_FullText where contains(MyText,'c')

搜索結果為:

結果為空。而事實上記錄中有包含“C”的卻搜索不出來,因為默認的斷詞語言是簡體中文,所以英文搜索不出來!

下面使用:

select * from dbo.My_FullText where contains(MyText,'汽車')

(5)刪除全文索引

直接刪除會出現如:

此時刪除主鍵,則依賴於主鍵的全文索引會自動刪除!

(個人學習體會,如果有什么意見,請踴躍提出!謝謝!如果要轉載,請通知本人:http://www.cnblogs.com/ITGirl00

交流QQ:392989505

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM