亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server 全文搜索功能介紹

2024-08-31 01:05:15
字體:
供稿:網(wǎng)友

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

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

一,創(chuàng)建全文目錄和唯一索引

創(chuàng)建全文索引之前,必須創(chuàng)建全文目錄(Full-Text Catalog),全文目錄用于組織全文索引,是全文索引的容器。每一個全文索引必須屬于一個全文目錄。全文目錄是個邏輯結(jié)構(gòu),跟數(shù)據(jù)庫的架構(gòu)(Schema)相同,根據(jù)全文索引的存儲位置無關(guān)。

create fulltext catalog catalog_testas default;

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

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

二,創(chuàng)建全文索引

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

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

1,語言(language)

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

2,全文目錄(fulltext_catalog)

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

3,文件組(filegroup)

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

4,填充全文索引的方式

和普通的索引相同,當(dāng)基礎(chǔ)表數(shù)據(jù)更新時,全文索引必須自動更新,這是系統(tǒng)默認的行為,也可以配置手動更新全文索引,或者間隔特定的時間點自動更新全文索引。

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

5,停用詞(STOPLIST)

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

STOPLIST [ = ] { OFF | SYSTEM | stoplist_name } 

三,填充全文索引

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

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

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

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

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

四,使用 contains 謂詞查詢?nèi)乃饕?/strong>

如果想要在查詢中使用全文索引,通常使用CONTAINS謂詞來調(diào)用全文索引,實現(xiàn)比LIKE關(guān)鍵字更復(fù)雜的文本匹配查詢,而LIKE關(guān)鍵字是模糊匹配,不會調(diào)用全文索引。

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

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

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

contains謂詞返回的結(jié)果是布爾值,如果全文索引列中包含指定的關(guān)鍵字或查找模式(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*"',全文索引只能執(zhí)行前綴匹配。

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

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

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

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

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

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

4,距離查詢

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

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

例如:使用Near 函數(shù)指定相鄰分詞的距離和匹配順序,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 orderCONTAINS(column_name, 'NEAR(term1,"term3 term4")')--searches for "AA" and "BB", in either order, within a maximum distance of fiveCONTAINS(column_name, 'NEAR((AA,BB),5)')--in the specified order with regardless of the distanceCONTAINS(column_name, 'NEAR ((Monday, Tuesday, Wednesday), MAX, TRUE)')

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

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

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

BB one two CC three four five AA

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

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

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

總結(jié)

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


注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲成在人线在线播放| 中文国语毛片高清视频| 亚洲一卡二卡三卡| 亚洲综合999| 成人在线免费观看视视频| 中文区中文字幕免费看| 国产精品无码久久av| 桥本有菜亚洲精品av在线| 久久精品免费| 一区二区三区视频免费视频观看网站| 国精产品99永久一区一区| 在线观看欧美日韩| 久久久久久亚洲精品美女| 国产黄色片在线观看| 色欲久久久天天天综合网| 国产一级片免费在线观看| 日本中文在线| 亚洲日本在线看| 国产99视频精品免费视频36| 国产91精品对白在线播放| 日本成人三级电影网站| 亚洲精品喷潮一区二区三区| 国产丝袜高跟一区| 高清电影在线观看免费| 同性恋视频网站资源| 精品一区二区三区电影| 免费av不卡在线| 国产综合色视频| 精品少妇一区二区三区免费观| julia京香一区二区三区| 国产成人综合精品| 2019精品视频| xxx成人少妇69| 久久精品日韩欧美| av免费精品一区二区三区| 91精品视频免费观看| 亚洲成人精品电影在线观看| 国产欧美亚洲精品| 欧美亚洲动漫精品| 在线一区二区三区| 欧美一区二区大胆人体摄影专业网站| 久久久久久久久久久久av| 国产成人免费视频精品含羞草妖精| 中文字幕人妻精品一区| 在线视频不卡一区二区三区| 在线免费观看h| 成人国产激情| а√最新版天堂中文在线| 亚洲精品911| 久色乳综合思思在线视频| 亚洲少妇18p| 亚洲欧美日韩偷拍| 中文字幕乱码一区二区免费| 中文字幕一区二区三区最新| 国产一区二区三区在线观看精品| bbbbbbbbbbb在线视频| 亚洲免费网站观看视频| 免费看又色又爽又黄网站| 欧美成人精品一区二区| 蜜桃av导航| 91久久免费观看| 亚洲一区在线直播| 大菠萝精品导航| 尤物视频..com| 日本一区不卡| av免费观看一区二区| 中文字幕无码人妻少妇免费| 天天综合久久综合| 欧美成人国产va精品日本一级| 久久这里有精品| 丰满岳妇乱一区二区三区| 亚洲欧美日韩久久久久久| 亚洲日本在线视频观看| 欧美日韩精品一区二区在线播放| 粉嫩老牛aⅴ一区二区三区| 黄色成人小视频| 国产精品美女久久久久久久久久久| 国产精品久久在线观看| www.麻豆av.com| 国产一区二区三区视频播放| 久久久久久国产精品美女| 国产伦精品一区二区三区在线观看| 欧美日韩激情视频8区| 精品国产精品一区二区夜夜嗨| 久久r热视频| 午夜精品一区二区三级视频| 国内精品久久久久久影视8| 亚洲高清在线观看一区| 少妇欧美激情一区二区三区| 在线观看免费高清视频97| 99国产在线播放| 第一区免费在线观看| 国产成人一区二| 麻豆精品视频入口| 美日韩黄色大片| 精精国产xxxx视频在线中文版| 欧美乱大交xxxxx免费| av天堂永久资源网| 亚洲xxx在线观看| 亚洲美女性视频| 全部孕妇毛片丰满孕妇孕| 国产午夜精品全部视频播放| 色乱码一区二区三区网站| 成人欧美magnet| 熟妇人妻一区二区三区四区| 欧美国产激情二区三区| 国产欧美日本一区二区三区| 国产一区二区三区四区五区六区| 黄色美女视频在线观看| 亚洲1区2区3区4区| 久久99精品久久久久久久青青日本| 免费成人蒂法| 成人黄色在线免费观看| 丝袜亚洲另类欧美综合| 51精品久久久久久久蜜臀| 色一情一交一乱一区二区三区| 日韩中文字幕久久久经典网| 中文字幕免费高清视频| 99久久伊人| 国产欧美久久久久久| 91麻豆蜜桃一区二区三区| 免费一级欧美片在线观看网站| 国产精品视频一区国模私拍| 国产69精品久久久| 国产精品一页| 草莓视频app18在线视频| 亚洲深夜福利在线| 99久久人爽人人添人人澡| 91视频在线| 国产免费网址| 久久久久久av| 亚洲专区中文字幕| 国产男女猛烈无遮挡91| 日本在线三级| 91蝌蚪在线| 国产日韩中文在线中文字幕| 一区二区视频欧美| 亚洲毛片在线看| 亚洲乱码中文字幕久久孕妇黑人| 久久久一本精品99久久精品66| 日韩福利一区| 韩国一区二区三区四区| 精品人妻少妇AV无码专区| 超碰高清在线| 99re6在线| 香蕉国产精品偷在线观看不卡| 精品少妇一区二区30p| 欧美精品在线免费| 亚洲人与黑人屁股眼交| 激情高潮到大叫狂喷水| 亚洲精品狠狠操| 国产精品亚洲综合一区在线观看| 日韩啊v在线| 久久国产精品久久久久久| 国产成人啪免费观看软件| 亚洲jizzjizz妇女| 国产综合亚洲精品一区二| gai在线观看免费高清| 欧美精品videosbestsex另类| 久久免费在线观看| 色综合久久久久综合| 日本一区二区三区四区视频| 成人中文字幕av| 99久久99久久精品| 欧美一级日韩不卡播放免费| 欧美激情视频免费观看| 欧美性做爰毛片| 99久久久久| 日韩人妻无码精品综合区| 欧美三级黄网| 7777久久亚洲中文字幕| 奇米影视888狠狠狠777不卡| 91久久久久久久久| 精品少妇一区二区30p| 91高清在线免费观看| 亚洲人成网站777色婷婷| 亚洲欧美成人一区二区三区| 精品少妇一区二区三区密爱| jizzjizzjizzjizzjizzjizzjizz| 中文字幕人妻熟女在线| 欧美日本韩国国产| 69av.com| 日韩欧美在线一区二区三区| 日韩av自拍| 国产成人aa在线观看网站站| 老鸭窝亚洲一区二区三区| 色婷婷亚洲婷婷| 欧美成人三级在线视频| 精品日韩欧美在线| 狠狠干夜夜草| 国产性生活免费视频| 国产精品777777| 青青草国产精品| 91精品在线国产| 亚洲a视频在线| 欧美日韩一区二区三区四区不卡| 中文字幕精品av| 欧美一区2区三区4区公司二百| 日韩三级视频| 亚洲一区二区国产| 欧美成人免费高清视频| 久久麻豆精品| 九色蝌蚪在线| 国产精品激情av电影在线观看| 国产福利在线观看| 中文字幕一区在线播放| 欧美精品一区二区三区高清aⅴ| 91www在线观看| free性m.freesex欧美| 91丨porny丨对白| 久久久电影一区二区三区| 国产美女免费观看| 久久久久无码国产精品一区李宗瑞| 日本高清中文字幕| 欧美日韩精品是欧美日韩精品| 欧美亚洲激情视频| 潘金莲一级淫片aaaaa| 成人av免费电影网站| 最新黄色av网址| 一区二区三区美女视频| 欧美喷水视频| 欧美日韩精品二区第二页| 久久精品国产网站| 国产婷婷精品| 亚洲一区二区三区四区在线| 成人欧美视频在线| 国产精品极品在线| 中文字幕人成人乱码亚洲电影| 免费久久99精品国产自在现线| 超碰在线公开| 四虎a级欧美在线观看| 国产在线一区二区三区| 成人免费午夜电影| 最近中文字幕mv第三季歌词| 日本熟妇一区二区三区| av网站大全在线| cao在线观看| 中文字幕制服丝袜一区二区三区| 婷婷六月综合亚洲| 日韩视频在线免费看| 91久久精品午夜一区二区| 草莓视频成人appios| 成年人网站免费在线观看| 超碰成人在线免费| www免费在线观看视频| 久久精品最新地址| 悠悠色在线精品| 97精品视频在线| 日韩在线观看www| 欧美性猛交xxxxbbbb| japan高清日本乱xxxxx| 精品欧美一区二区在线观看| 色琪琪综合男人的天堂aⅴ视频| 古典武侠综合av第一页| 免费啪视频在线观看| a级片国产精品自在拍在线播放| 欧美亚洲丝袜| 成年丰满熟妇午夜免费视频| 乱人伦精品视频在线观看| 影音先锋一区| 日韩美一区二区| 成人羞羞视频免费看看| 欧美三级午夜理伦三级| 久久久久性色av无码一区二区| 久九九久频精品短视频| 久久久久久久久久久久久久久久久久av| 亚洲经典视频在线观看| 日韩三级影视基地| 第84页国产精品| 日本在线免费观看视频| 欧洲亚洲精品久久久久| 欧美疯狂做受xxxx富婆| 亚洲人成伊人成综合网久久久| 欧美日韩网站| 免费av在线| av文字幕在线观看| 成人免费在线网址| 久久久久久久一区二区三区| 九九视频在线播放| 黄色成人av网| 久久久国产精品不卡| 午夜视频在线网站| 成人免费小视频| 国产欧美视频在线观看| 精品国产一区三区| 国产欧美视频在线| 在线中文av| 久一视频在线观看| 黄瓜视频免费观看在线观看www| 亚洲自拍偷拍欧美| 亚洲精品电影网在线观看| 久久久久久久国产精品毛片| 一区二区视频免费完整版观看| 久草网站在线| 91网页在线看| 97精品人人妻人人| 欧美精品日日鲁夜夜添| 99视频一区| 欧美大片在线看| 在线免费观看羞羞视频一区二区| a级毛片免费高清视频| 欧美久久在线观看| 精品爆乳一区二区三区无码av| 日韩毛片中文字幕| 91免费的视频在线播放| 久精品免费视频| 国产免费一区二区| 99久久99久久久精品棕色圆| 日韩精品视频在线看| 亚洲欧美激情视频在线观看一区二区三区| 欧美亚洲国产一卡| 亚洲热在线观看| jizz蜜桃视频在线观看| 国产成人精品视频免费看| 国产精品色在线网站| 国产精品酒店视频| 在线不卡日本| 国产免费久久精品| 亚洲v国产v在线观看| 好吊色这里只有精品| 88xx成人免费观看视频库| 一区二区三区四区蜜桃| 中文字幕免费精品一区高清| 亚洲成人影院在线观看| 亚洲高清视频在线| 性欧美18一19性猛交| 国产日韩一区二区在线观看| 57pao国产精品一区|