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...