全文索引 海量資料模糊查詢

2022-02-23 13:08:30 字數 2844 閱讀 6655

1.全文檢索(full-text indexes)可以對varchar,text,image

型字段進行檢索

,但乙個表最多只能建乙個全文索引

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

3.建立全文索引演示

(1)開啟全文索引支援,啟動sql server

的全文搜尋服務

use 資料庫名字

goexecute sp_fulltext_database 'enable'

(2)建表和初始化資料(說明:測試資料庫名稱為:mydbtest,測試表名稱為:my_fulltext)

--建表

use [mydbtest]

gocreate 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 2005的

sp2補丁檔名為:

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

select * from dbo.my_fulltext where contains(mytext,'c')

搜尋結果為:

結果為空。而事實上記錄中有包含「c」的卻搜尋不出來,因為預設的斷詞語言是簡體中文,所以英文搜尋不出來!

下面使用:

select * from dbo.my_fulltext where contains(mytext,'汽車')

(5)刪除全文索引

直接刪除會出現如:

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

mySql全文索引查詢

使用全文索引首先需要資料的搜尋引擎是myisam,innodb不支援全文索引 1.把你要查詢的字段設定全文索引 alter table sn ly peopleinfo add fulltext tel phone 2.執行sql語句 select from sn ly peopleinfo whe...

mysql全文索引的坑 MySQL全文索引問題

我有乙個包含以下資料的 文章 mysql select from articles id title body 1 mysql tutorial dbms stands for database 2 how to use mysql well after you went through a 3 o...

建立全文索引

建立全文索引 在進行全文檢索之前,必須先建立和填充資料庫全文索引。為了支援全文索引操作,sql server 7.0新增了一些儲存過程和transact sql語句。使用這些儲存過程建立全文索引的具體步驟如下 括號內為呼叫的儲存過程名稱 1.啟動資料庫的全文處理功能 sp fulltext data...