校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQL Server 全文搜索功能介紹

SQL Server 全文搜索功能介紹

熱門標簽:優質地圖標注 百度地圖標注不同路線 奧威地圖標注多個地方 千呼電銷機器人價格 武漢長沙外呼系統方法和技巧 智能語音外呼系統選哪家 怎樣在地圖上標注路線圖標 京華物流公司地圖標注 外呼系統電銷專用

SQL Server 的全文搜索(Full-Text Search)是基于分詞的文本檢索功能,依賴于全文索引。全文索引不同于傳統的平衡樹(B-Tree)索引和列存儲索引,它是由數據表構成的,稱作倒轉索引(Invert Index),存儲分詞和行的唯一鍵的映射關系。倒轉索引是在創建全文索引或更新全文索引時,由SQL Server自動創建和維護的。全文索引主要包含三種分析器:分詞器(Word Breaker)、詞干分析器(stemmer)和同義詞分析器。全文索引中存儲的數據是分詞及其位置等信息,分詞是基于特定語言的語法規則,按照特定的符號尋找詞語的邊界,把文本分解為“單詞”,每一個單詞叫做一個分詞(term);全文索引有時會提取分詞的詞干,把詞干的多種派生形式存儲為單一詞干,這個過程叫做提取詞干;根據用戶提供的自定義同義詞列表,把相關的單詞轉換為同義詞,這個過程叫做提取同義詞。

生成全文索引是把用戶表中的文本數據進行分詞(Word breaker)和提取詞干(Stemmer),并轉換同義詞(Thesaurus),過濾掉分詞中的停用詞(Stopword),最后把處理之后的數據存儲到全文索引中。把數據存儲到全文數據的過程叫做填充(Populate)或爬蟲(Crawl)進程,全文索引的更新方式可以手動填充,自動填充,或增量填充。

一,創建全文目錄和唯一索引

創建全文索引之前,必須創建全文目錄(Full-Text Catalog),全文目錄用于組織全文索引,是全文索引的容器。每一個全文索引必須屬于一個全文目錄。全文目錄是個邏輯結構,跟數據庫的架構(Schema)相同,根據全文索引的存儲位置無關。

create fulltext catalog catalog_test
as default;

為了創建全文索引,基礎表上必須存在一個唯一的(unique)、單列的(single-column)、非空的(non-nullable)的索引,全文引擎使用該索引把基礎表上的每行數據映射唯一索引鍵上,倒轉索引存儲的就是該索引鍵和分詞之間的映射關系。

create unique index uidx_dbLogID 
on [dbo].[DatabaseLog]
([DatabaseLogID]);

二,創建全文索引

每個表只能創建一個全文索引,創建全文索引時,必須考慮全文索引存儲的文件組,全文索引關聯的停用詞列表,全文索引的更新方式,以及跟文本關聯的語言,全文索引列必須是文本字段,例如:

create fulltext index 
on [dbo].[DatabaseLog]
(
[tsql] language 1033
)
key index ui_dbLogID
on (catalog_test,filegroup [primary]) 
with(change_tracking=off ,no population ,stoplist=system);

1,語言(language)

選項 language 是可選的,用于指定列級別的語言,該選項的值可以是語言的名稱或LCID,如果沒有指定language選項,那么使用SQL Server實例的默認語言。從系統視圖 sys.fulltext_languages (Transact-SQL)中查看系統支持的語言及其對應的LCID 和名稱。

2,全文目錄(fulltext_catalog)

選項fulltext_catalog_name 用于指定全文索引的分組,

3,文件組(filegroup)

選項 filegroup filegroup_name 用于指定全文索引存儲的文件組,如果沒有指定文件組,那么全文索引和基礎表存儲在相同的文件組中。由于更新全文索引是IO密集型操作,因此,為了更快的更新全文索引,最好把全文索引存儲在不同于基礎表的的物理硬盤或文件組上,以達到最大的IO并發。

4,填充全文索引的方式

和普通的索引相同,當基礎表數據更新時,全文索引必須自動更新,這是系統默認的行為,也可以配置手動更新全文索引,或者間隔特定的時間點自動更新全文索引。

選項CHANGE_TRACKING 用于指定跟全文索引列相關的數據更新(Update,Delete,或Insert)是否需要同步到全文索引,
•CHANGE_TRACKING = MANUAL :手動更新
•CHANGE_TRACKING =AUTO:自動更新,默認設置,當基礎表數據變化時,全文索引自動更新,
•CHANGE_TRACKING =OFF , NO POPULATION:不更新,指定選項NO POPULATION,表明在創建全文索引之后,SQL Server不會更新(populate)全文索引;如果未指定選項NO POPULATION,在創建全文索引之后,SQL Server更新全文索引。

5,停用詞(STOPLIST)

停用詞(StopWord)也稱作噪音詞,每一個全文索引都會關聯一個停用詞列表,默認情況下,全文索引關聯的是系統停用詞(system stoplist)。全文引擎把停用詞從分詞中刪除,使全文索引不會包含停用詞。

STOPLIST [ = ] { OFF | SYSTEM | stoplist_name } 

三,填充全文索引

填充全文索引也叫做爬蟲(crawl)進程,或填充(Population)進程。由于創建或填充全文索引會消耗大量的系統(IO、內存)資源,因此盡量選擇在系統空閑時對全文索引進行填充。在創建全文索引時,通過指定選項 CHANGE_TRACKING= MANUAL,或 CHANGE_TRACKING= OFF, NO POPULATION,新建的全文索引不會立即填充,用戶可以選擇在系統空閑時,使用 alter fulltext index 語句執行填充操作。只有填充全文索引之后,全文索引才包含基礎表的分詞數據。

alter fulltext index 
on table_name
start { full | incremental | update } population;

更新全文索引有三種方式:

•FULL POPULATION:全部填充,從基礎表中獲取每一行,重新編入全文索引;
•INCREMENTAL POPULATION:增量填充,前提是基礎表中包含timestamp字段,從上一次填充之后,只把更新之后的數據編入全文索引;
•UPDATE POPULATION:更新填充,從上一次填充之后執行更新(insert、update、或delete)操作的數據行重新編入索引;

在創建全文索引時,如果指定CHANGE_TRACKING=AUTO   或   CHANGE_TRACKING=  OFF , 那么新建的全文索引會立即開始填充進程。

四,使用 contains 謂詞查詢全文索引

如果想要在查詢中使用全文索引,通常使用CONTAINS謂詞來調用全文索引,實現比LIKE關鍵字更復雜的文本匹配查詢,而LIKE關鍵字是模糊匹配,不會調用全文索引。

例如,利用contains謂詞執行單個分詞的完全匹配查詢:

select [tsql] 
from [dbo].[DatabaseLog] 
where contains([tsql], 'searchword', language 1033);

全文查詢跟Like相比,速度更快,支持的搜索功能更復雜,使用contains謂詞,不僅能夠執行分詞的完全匹配或分詞的前綴匹配查詢,還能夠執行基于詞根的查詢,基于自定義同義詞的查詢,基于距離和順序的相鄰分詞查詢。但是,和Like 相比,contains謂詞不能進行后綴匹配查詢。

contains謂詞返回的結果是布爾值,如果全文索引列中包含指定的關鍵字或查找模式(pattern),返回TRUE;否則,返回FALSE。

contains謂詞支持word查詢和短語查詢,word是指單個分詞,短語(phrase)是由多個word和間隔的空格組成的,對于短語,必須使用雙引號,將多個word組成一個短語。

1,邏輯組合查詢

使用and ,and not, 或 or 邏輯運算符 匹配多個word 或 多個phrase

CONTAINS(Name, '"Mountain" OR "Road" ')
CONTAINS(Name, ' Mountain OR Road ')

2,前綴查詢

使用contains謂詞進行前綴匹配,和like 'prefix%'功能相同,只不過contains謂詞使用“*”作為通配符,“*”匹配0,1或多個字符,前綴匹配的寫法是:'"prefix*"',全文索引只能執行前綴匹配。

CONTAINS(Name, ' "Chain*" ')
CONTAINS(Name, '"chain*" OR "full*"')

3,查詢同義詞(thesaurus)或詞干(stemmer)

Stemmer(詞干),例如,根據語法規程,英語的動詞 根據數(單數,復數),人稱,時態的不同而存在不同的變化形式,這些單詞都是同源的。

CONTAINS(Description, ' FORMSOF (INFLECTIONAL, ride) ')

THESAURUS (同義詞),需要導入XML進行配置,SQL Server 提供一個默認的Thesaurus file,是Empty的。如果在Thesaurus file 配置“Author”,“Writer”,“journalist” 是同義詞,在使用fulltext index查詢時,只要滿足任意一個同義詞,都匹配成功。

CONTAINS(Description, ' FORMSOF (THESAURUS, author) ')

4,距離查詢

使用 near 函數,查詢匹配相鄰分詞的數據行,near函數的定義如下,用于需要在查詢模式中指定距離查詢的查詢模式:

NEAR ( ( { simple_term> | prefix_term> } [ ,…n ] ) [, maximum_distance> ] [, match_order> ] ) 

例如:使用Near 函數指定相鄰分詞的距離和匹配順序,near((term1,term2,term3),5)表示任意兩個term之間的距離不能超過5, near((term1,term2,term3),5,true),表示任意兩個term的距離不能超過5,并且按照 term1,term2,term3的順序存在于字符串中。

--regardless of the intervening distance and regardless of order
CONTAINS(column_name, 'NEAR(term1,"term3 term4")')
--searches for "AA" and "BB", in either order, within a maximum distance of five
CONTAINS(column_name, 'NEAR((AA,BB),5)')
--in the specified order with regardless of the distance
CONTAINS(column_name, 'NEAR ((Monday, Tuesday, Wednesday), MAX, TRUE)')

對于 near((term1,term2,term3),5,true),term1 和 term5之間最多存在5個term,不包括內部的搜索分詞,“term2”,例如:

CONTAINS(column_name, 'NEAR((AA,BB,CC),5)')

這個查詢會匹配下面的文本,注意,內部的搜索分詞CC沒有計算距離:

BB one two CC three four five AA

例如,在原文本中,分詞bike和control的最大距離不能超過10,分詞bike必須出現在分詞control的前面:

CONTAINS(Comments , 'NEAR((bike,control), 10, TRUE)')

SQL Server提供的全文搜索功能,比LIKE關鍵字豐富,具備初級的全文搜索功能,速度快,維護簡單,缺點是,全文搜索功能非常有限,在實際的開發中,可以配合開源的全文搜索引擎,例如,Solr,Elasticsearch等來開發功能更強大的全文搜索功能。

總結

以上所述是小編給大家介紹的SQL Server 全文搜索功能介紹,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

您可能感興趣的文章:
  • SQLServer地址搜索性能優化
  • 在SQL Server 2005所有表中搜索某個指定列的方法
  • 在SQL Server中實現最短路徑搜索的解決方法
  • sqlserver中在指定數據庫的所有表的所有列中搜索給定的值

標簽:益陽 威海 防疫戰設 七臺河 宿州 來賓 天水 銅仁

巨人網絡通訊聲明:本文標題《SQL Server 全文搜索功能介紹》,本文關鍵詞  SQL,Server,全文,搜索,功能,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server 全文搜索功能介紹》相關的同類信息!
  • 本頁收集關于SQL Server 全文搜索功能介紹的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产激情视频一区二区三区欧美 | av在线一区二区三区| 亚洲福利一区二区| 中文字幕乱码日本亚洲一区二区 | 久久久亚洲综合| 欧美一区二区视频在线观看| 色婷婷久久久久swag精品| 不卡高清视频专区| 国产精品一区二区x88av| 蜜臀久久99精品久久久久久9| 国产午夜精品一区二区三区四区| 91麻豆精品国产91| 欧美综合亚洲图片综合区| 91丨国产丨九色丨pron| 99视频国产精品| 成人激情视频网站| 成人美女在线视频| 国内欧美视频一区二区| 国产麻豆9l精品三级站| 狠狠久久亚洲欧美| 国产乱理伦片在线观看夜一区 | 日韩精品一区二区三区swag | 国产成人综合在线观看| 国产精品一区二区视频| 国产专区综合网| 国产一区91精品张津瑜| 国产成人在线网站| 国产成人精品三级麻豆| 成人av午夜影院| 91在线精品一区二区三区| 一本到一区二区三区| 欧美偷拍一区二区| 欧美一区二区三区白人| www亚洲一区| 精品国产免费人成电影在线观看四季 | 亚洲1区2区3区4区| 国内精品伊人久久久久av一坑| 激情综合色综合久久| 国产一本一道久久香蕉| 99视频精品免费视频| 欧美天天综合网| 精品999久久久| 久久精品亚洲国产奇米99| 国产精品福利影院| 蜜臀91精品一区二区三区| 91同城在线观看| 国产亚洲精品中文字幕| 免费成人在线网站| 99视频超级精品| 欧美成人性战久久| 亚洲天堂精品视频| 精彩视频一区二区三区| 色婷婷av久久久久久久| 欧美成人欧美edvon| 国产精品成人免费在线| 免费在线视频一区| 国产91高潮流白浆在线麻豆| 欧美三级日韩三级国产三级| 久久香蕉国产线看观看99| 亚洲综合在线观看视频| 国产精品一区二区果冻传媒| 欧美日韩在线免费视频| 日韩免费高清av| 亚洲午夜一区二区| 粉嫩高潮美女一区二区三区| 4hu四虎永久在线影院成人| 中文字幕五月欧美| 国产精品一区二区你懂的| 在线播放国产精品二区一二区四区| 欧美sm极限捆绑bd| 日韩专区欧美专区| 91成人国产精品| 中文在线资源观看网站视频免费不卡 | 亚洲国产精品影院| 99精品久久只有精品| 欧美一级夜夜爽| 亚洲黄色av一区| 不卡视频一二三| 国产精品你懂的在线欣赏| 美女视频黄 久久| 欧美性一二三区| 国产精品伦一区| 粉嫩av一区二区三区| 久久久久国产精品麻豆| 久久av资源网| 欧美电视剧免费观看| 热久久一区二区| 94-欧美-setu| 亚洲欧洲精品一区二区三区| 丁香婷婷综合色啪| 欧美激情一区二区三区全黄| 国产精品夜夜嗨| 精品欧美黑人一区二区三区| 日韩成人精品在线观看| 在线综合+亚洲+欧美中文字幕| 亚洲国产婷婷综合在线精品| 日本久久一区二区| 亚洲美女视频一区| 在线视频观看一区| 亚洲午夜久久久久久久久久久| 在线观看免费视频综合| 亚洲观看高清完整版在线观看 | 色综合久久综合中文综合网| 久久久91精品国产一区二区精品| 国产精品亚洲午夜一区二区三区| 国产色产综合色产在线视频| 成人午夜碰碰视频| 亚洲精品视频在线观看免费| av欧美精品.com| 一区二区三区不卡视频在线观看| 欧美日本在线观看| 日韩精品三区四区| 久久综合久久综合久久| 日本高清视频一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 在线观看一区不卡| 久久er99精品| 午夜精品视频一区| 国产精品嫩草久久久久| 欧美一区二区三区在线电影| 白白色 亚洲乱淫| 精品一区精品二区高清| 亚洲国产毛片aaaaa无费看 | 精品一区二区三区免费| 樱花影视一区二区| 欧美—级在线免费片| 制服丝袜亚洲网站| 91传媒视频在线播放| 成人av在线网站| 国产精品一级黄| 久久66热re国产| 视频一区二区三区中文字幕| 亚洲免费资源在线播放| 欧美经典一区二区三区| 精品国精品国产| 欧美日韩精品欧美日韩精品| 一本色道a无线码一区v| 99久久精品免费精品国产| 国产成人免费av在线| 精品一区二区免费看| 男人的天堂久久精品| 亚洲成人av电影| 亚洲第一狼人社区| 天天做天天摸天天爽国产一区 | 日韩一区二区免费在线观看| 91成人看片片| 欧美亚洲综合网| 欧美撒尿777hd撒尿| 欧洲一区二区三区在线| 欧美中文字幕不卡| 在线精品视频一区二区三四| 欧美伊人精品成人久久综合97 | 美女免费视频一区| 蜜臀av在线播放一区二区三区| 日日夜夜免费精品| 免费成人在线观看视频| 精品在线你懂的| 国产精品亚洲第一| 不卡在线视频中文字幕| 色诱亚洲精品久久久久久| 色香色香欲天天天影视综合网| 欧美综合视频在线观看| 欧美三级乱人伦电影| 欧美二区三区的天堂| 欧美mv日韩mv国产网站app| xf在线a精品一区二区视频网站| 2020国产精品自拍| 国产精品国产三级国产专播品爱网| 亚洲欧美日韩一区二区三区在线观看| 亚洲欧美激情插 | 国产情人综合久久777777| 亚洲国产精品成人综合色在线婷婷| 国产精品久久久爽爽爽麻豆色哟哟 | 韩国v欧美v日本v亚洲v| www.在线成人| 欧美日韩精品一二三区| 日韩你懂的在线播放| 国产精品美女www爽爽爽| 伊人色综合久久天天| 久久激情五月婷婷| 99精品国产一区二区三区不卡| 欧美另类videos死尸| 久久久久久久综合日本| 亚洲乱码中文字幕| 精一区二区三区| 91黄色免费看| 久久综合久久久久88| 亚洲综合网站在线观看| 国产精品亚洲人在线观看| 欧美性猛交一区二区三区精品| 精品久久久久久久久久久久包黑料 | 亚洲日本护士毛茸茸| 日韩1区2区日韩1区2区| 99热精品国产| 久久综合给合久久狠狠狠97色69| 亚洲三级在线免费| 国产精选一区二区三区| 欧美男生操女生| 成人免费一区二区三区视频 | 亚洲二区视频在线|