人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

SQL Server同Index Server的結(jié)合應(yīng)用3/3——選自《用BackOffice創(chuàng)建Intranet/Extranet應(yīng)用》一書

SQL Server同Index Server的結(jié)合應(yīng)用3/3——選自《用BackOffice創(chuàng)建Intranet/Extranet應(yīng)用》一書

更新時(shí)間:2022-07-03 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

本段文章節(jié)選自鐵道出版社新出的《用BackOffice建立Intranet/Extranet應(yīng)用》一書(現(xiàn)已在各書店有售。如海淀圖書城、西單圖書大廈等。外地或者需要送貨上門的讀者可以到www.wanbook.com.cn或www.e-bookshop.com.cn上在線購(gòu)買。本書書號(hào)為ISBN7113039448)。本書詳盡地講述了如何使用微軟BackOffice系列產(chǎn)品來(lái)組建Intranet/Extranet應(yīng)用。通過它您將掌握NT的安裝和設(shè)置、使用IIS建立Web站點(diǎn)、通過ILS建立網(wǎng)絡(luò)會(huì)議系統(tǒng)、用Exchange建立企業(yè)的郵件和協(xié)作系統(tǒng)、用SQL Server建立Web數(shù)據(jù)庫(kù)應(yīng)用、用Proxy Server建立同Internet安全可靠的連接、用Media Server建立網(wǎng)絡(luò)電視臺(tái)/廣播站、用Chart server建立功能強(qiáng)大的聊天室、用Site Server建立個(gè)性化的郵件列表和分析網(wǎng)站的訪問情況、用Commerce Server建立B2B或B2C的電子商務(wù)網(wǎng)站。此外本書還對(duì)網(wǎng)絡(luò)的安全性進(jìn)行了討論,從而指導(dǎo)您建立一個(gè)更為健壯和安全的網(wǎng)絡(luò)應(yīng)用。閱讀本書之后,您將發(fā)現(xiàn)實(shí)現(xiàn)豐富多彩的網(wǎng)絡(luò)應(yīng)用原來(lái)這樣簡(jiǎn)單……
絕對(duì)原創(chuàng),歡迎轉(zhuǎn)載。但請(qǐng)務(wù)必保留以上文字。

6.11.2.通過SQL Server查詢Index Server
如果要通過SQL Server查詢Index Server,須使用OPENQUERY函數(shù)。其語(yǔ)法結(jié)構(gòu)如下。
OPENQUERY(linked_server, 'query')
其中l(wèi)inked_server參數(shù)為連接的名稱。而query參數(shù)為要進(jìn)行的查詢,它將以一個(gè)字符串的形式傳送給OPENQUERY函數(shù)。此函數(shù)返回的將是一個(gè)虛擬表,從而可以讓我們對(duì)其做進(jìn)一步的查詢。
下面的語(yǔ)句查找內(nèi)容包含中SQL這個(gè)單詞的所有文件:
SELECT *
FROM OpenQuery(FileSystem,
'SELECT Directory, FileName, DocAuthor, Size, Create
FROM SCOPE()
WHERE CONTAINS( Contents, ''SQL'' ) ' )
對(duì)于Index Server的查詢,其FROM語(yǔ)句的語(yǔ)法格式于普通的SQL語(yǔ)句是有所區(qū)別的。其語(yǔ)法結(jié)構(gòu)如下:
FROM [ Catalog_Name.. ] { SCOPE( [ 'Scope_Arguments' ] ) }
其中的Catalog_Name參數(shù)用于指明要進(jìn)行查詢的索引目錄。由于我們?cè)诙x連接時(shí)只能選擇一個(gè)索引目錄,所以此參數(shù)在此將被省略。而SCOPE函數(shù)用于指明要進(jìn)行查詢的文件所在的目錄。SCOPE函數(shù)的語(yǔ)法結(jié)構(gòu)如下圖所示。

圖6.11.2-1SCOPE函數(shù)語(yǔ)法結(jié)構(gòu)圖
其中DEEP TRAVERSAL OF關(guān)鍵字指明將查詢目錄中所有的文件,包括其子目錄中的所有文件。而SHALLOW TRAVERSAL OF關(guān)鍵字則指明只查詢頂級(jí)目錄中的文件,而不包括子目錄中的那些文件。如果不指明查詢的目錄深度,則默認(rèn)為DEEP TRAVERSAL OF。
physical_path和virtual_directory分別為物理目錄和虛擬目錄。其中各自的含義在圖中已經(jīng)標(biāo)示的非常明白了,在此就不再進(jìn)一步說(shuō)明了。
Index Server共支持50種文件屬性,而可以用來(lái)作為查詢條件或返回結(jié)果的常用文件屬性見下表:
屬性名稱數(shù)據(jù)類型注釋可否用于ORDER BY子句可否用于SELECT語(yǔ)句中
Accessdatetime文件的最后訪問時(shí)間。可可
Characterizationnvarchar或ntext文檔的描述或摘要,由Index Server使用。否可
Createdatetime文件的創(chuàng)建時(shí)間。可可
DirectoryNvarchar文件的物理路徑,不包含文件名。可可
DocAppNamenvarchar創(chuàng)建文件的應(yīng)用程序的名稱。如Microsoft Word 9.0。可可
DocAuthornvarchar文檔的作者。可可
DocCommentsnvarchar關(guān)于文檔的注釋。可可
DocCompanynvarchar寫作文檔的公司的名稱。可可
DocLastAuthornvarchar最近編輯文檔的用戶。可可
DocLastPrinteddatetime文檔的最近一次打印時(shí)間。可否
DocPageCountinteger文檔的頁(yè)數(shù)。可否
DocParaCountinteger文檔的圖形數(shù)量。可否
DocRevNumberinteger文檔的當(dāng)前版本。可可
DocSubjectnvarchar文檔的主題。可可
DocTemplatenvarchar文檔的模板。可可
DocTitlenvarchar文檔的標(biāo)題。可可
DocWordCountinteger文檔的字?jǐn)?shù)。可否
FileIndexDecimal(19,0)文件的唯一標(biāo)識(shí)。可可
FileNamenvarchar文件名。可可
HitCountinteger文件中的命中次數(shù)(單詞匹配查詢)。即文件中有多少個(gè)查詢條件中的單詞。可可
Pathnvarchar文件的物理路徑,包含文件名。可可
Rankinteger行的等級(jí),范圍從 0 到 1000,數(shù)字越大表示越匹配。可可
ShortFileNamenvarchar短文件名(8.3格式)。可可
SizeDecimal(19,0)文件大小,單位是字節(jié)。可可
VPathnvarchar指向文件的完整虛擬路徑,包括文件名。如果有多個(gè)可能的路徑,將選擇最符合查詢的一個(gè)。可可
Writedatetime最近一次寫文件的時(shí)間。可可

可以在Where子句中使用以上各種屬性作為查詢的條件。當(dāng)條件中包含全文檢索條件時(shí),需要使用CONTAINS和FREETEXT語(yǔ)句,其用法同SQL Server的全文檢索相同。要注意的是,在對(duì)Index Server的查詢中,不能使用GROUP BY和HAVING子句。因?yàn)檫@不被Index Server所支持。
此外,在查詢的SELECT子句中,不能使用*來(lái)選擇所有的屬性。*只有在對(duì)視圖進(jìn)行查詢時(shí)才可以使用。視圖實(shí)際上可以理解為從一個(gè)查詢導(dǎo)出的虛擬表。通過對(duì)視圖的查詢,可以實(shí)現(xiàn)對(duì)查詢結(jié)果的再次查詢。視圖一般應(yīng)用于需要經(jīng)常被其他查詢作為FROM子句中的數(shù)據(jù)源時(shí)使用。建立視圖使用CREATE VIEW語(yǔ)句,其語(yǔ)法結(jié)構(gòu)如下:
CREATE VIEW view_name [(column ][,...n])]
AS
select_statement
其中view_name為要建立的視圖的名稱,而AS子句后面的就是建立視圖的查詢語(yǔ)句。而此語(yǔ)句有以下限制:不能包含ORDER BY、COMPUTE和COMPUTE BY等子句;不能包含INTO關(guān)鍵字;不能涉及臨時(shí)表。
而column則用于為視圖中的各個(gè)字段命名。一般只有在這些字段是表達(dá)式或函數(shù)及常數(shù)時(shí)才需要為其命名。
在SQL Server中,也同樣可以使用CREATE VIEW語(yǔ)句來(lái)建立視圖。
下面我們通過一個(gè)例子來(lái)了解對(duì)Index Server查詢的全部過程。
我們將在虛擬目錄\Corpus和C:\temp目錄中查找那些作者在writer表中存在記錄且文檔字?jǐn)?shù)超過5000字的文件。并返回作者的名字、文檔題目以及作者的身份。其查詢語(yǔ)句和具體操作過程如下圖所示。

圖6.11.2-2Index Server查詢過程
其中各個(gè)步驟的解釋如下:
1:查詢被提交到SQL Server,將分布式查詢部分(包含在OPENQUERY函數(shù)之內(nèi)的部分)傳遞給SQL Server分布式查詢處理器。
2:分布式查詢處理器將查詢進(jìn)一步傳遞給OLE DB Provider for Indexing Service(MSIDXS),由MSIDX連接到文件系統(tǒng)。
3:MSIDXS分析查詢語(yǔ)句并向文件索引服務(wù)發(fā)出相應(yīng)的命令。
4:文件索引服務(wù)從一個(gè)結(jié)合了Web虛擬目錄/Corpus和C:\Temp目錄的虛擬表中查找那些符合條件的文件并將其作為一個(gè)行集返回給MSIDX。
5:MSIDXS將行集返回給分布式查詢處理器。
6:分布式查詢處理器將返回的行集作為一個(gè)表同writers表進(jìn)行結(jié)合查詢,并將最終結(jié)果返回給查詢提交者。
在對(duì)Index Server的查詢中,還不能使用QUANTIFIED、COMPARISON、BETWEEN、EXISTS、IN以及NULL等謂詞。因?yàn)檫@些都不被Index Server所支持。但是它支持兩個(gè)SQL Server所不直接支持的兩個(gè)謂詞:MATCHES和ARRAY。我們可以在對(duì)Index Server的查詢語(yǔ)句中使用它們。其含義和語(yǔ)法結(jié)構(gòu)分別如下:
MATCHES:用于模式匹配,其作用同Like相近但是功能更為強(qiáng)大。它的語(yǔ)法結(jié)構(gòu)如下:MATCHES (Column_Reference, ' { Grouped_Search_Pattern | Counted_Search_Pattern } ') > 0
其中Column_Reference為指定的文件屬性,其數(shù)據(jù)類型必須同后面的Grouped_Search_Pattern相匹配。
Grouped_Search_Pattern為指定的匹配模式。而Counted_Search_Pattern則用于對(duì)匹配的數(shù)量進(jìn)行限定,可以有三種限定方式:
嚴(yán)格匹配:在查詢的文件屬性中包含指定數(shù)目的滿足匹配條件的字串。
至少匹配:在查詢的文件屬性中包含大于或等于指定數(shù)目的滿足匹配條件的字串。
范圍匹配:在查詢的文件屬性中包含滿足匹配條件的字串?dāng)?shù)目界于n~m之間。
MATCHES可以使用的模式匹配符及其含義見下表:
符號(hào)描述
*包含指定的匹配字符串同時(shí)還包含其他0個(gè)或更多的字符。這同dir命令中使用的*十分類似。如以b開頭,以d結(jié)尾的字符串的匹配條件為b|*d。
?包含指定的匹配字符串同時(shí)還包含其他0個(gè)或一個(gè)字符。如滿足b|?d匹配條件的字串包括bd、bad和bed等。
+包含指定的匹配字符串同時(shí)還包含其他1個(gè)或更多的字符。如滿足b|+d匹配條件的字串包括bad、bed和bond等。
( )用于界定模式匹配,表明在其中的是模式匹配字符條件。當(dāng)條件多于一個(gè)時(shí)使用。
{ }用于界定匹配數(shù)量,表明在其中的是模式匹配數(shù)量條件。
[ ]用來(lái)在模式條件中指明一個(gè)字符串的范圍。
|一個(gè)轉(zhuǎn)義符,要求在上面的每個(gè)符號(hào)前使用它。從而將其同普通字符區(qū)別開來(lái)。
下面通過幾個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明MATCHES謂詞的使用方法。
查找文件內(nèi)容中出現(xiàn)"SQL"三次的文件:
...WHERE MATCHES (DocText, '|(SQL|)|{3|}' ) > 0
查找文件內(nèi)容中出現(xiàn)"SQL"三次以上的文件:
...WHERE MATCHES (DocText, '|(SQL|)|{3,|}' ) > 0
查找文件內(nèi)容中出現(xiàn)"SQL"三次到十次之間的文件:
...WHERE MATCHES (DocText, '|(Bora|)|{3,10|}' ) > 0
當(dāng)你不能確定作者姓名中包含"Pellow"還是"Pelow"時(shí),可以使用下面的條件語(yǔ)句:
...WHERE MATCHES( DocAuthor, '* Pel|{1,2|}ow' ) > 0
ARRAY:用于在兩個(gè)排列(也稱為矢量)之間通過邏輯運(yùn)算符來(lái)進(jìn)行比較。其語(yǔ)法結(jié)構(gòu)如下:
Column_Reference Comparison_Operator [ ALL | SOME ] ARRAY [ Array_Elements ]
其中Column_Reference用于比較的文件屬性,可以是多個(gè)屬性。但是要求其數(shù)據(jù)類型同后面的Array_Elements相匹配。
Comparison_Operator為比較運(yùn)算符,它可以是=、!=(不等于)、>、=>、<、<=。
Array_Elements用于指明用于進(jìn)行比較的排列,其必須用"[]"括起來(lái)。空的排列也是允許的,比如下面的查詢也是合法的。
SELECT foo FROM SCOPE() WHERE bar = ARRAY[]
ALL和SOME則用來(lái)指明對(duì)Array_Elements使用不同的比較方式。對(duì)于All,將會(huì)對(duì)左側(cè)排列中的每個(gè)元素同右側(cè)排列中相應(yīng)的元素進(jìn)行比較。比如下面的表達(dá)式對(duì)于ALL,表達(dá)式結(jié)果為假:
[1,2,3] > ALL ARRAY [1,2]
而對(duì)于SOME,則只要在左側(cè)排列中有一個(gè)值同右側(cè)排列中所有的值比較復(fù)合條件即可。因此下面的表達(dá)式對(duì)于SOME,其表達(dá)式結(jié)果為真:
[1,2,3] > SOME ARRAY [2,1]
因?yàn)樵谧髠?cè)排列中的3,比右側(cè)排列中的2和1都大因此返回值為真。
如果不指明ALL或SOME,將會(huì)按照從左至右的順序?qū)Ρ磉_(dá)式左側(cè)排列中的元素同右側(cè)中相應(yīng)的元素進(jìn)行比較。而一旦兩者不同,將直接返回比較結(jié)果而不再繼續(xù)進(jìn)行其他元素的比較。而如果所有比較的值都相等,則根據(jù)排列的勢(shì)來(lái)決定最后的比較結(jié)果。因此下列表達(dá)式的值都為真。
ARRAY [2,3,4] > ARRAY [1,2]
ARRAY [2,3,4] > ARRAY [1,2,3]
ARRAY [2,3,4] > ARRAY [1,2,3,4]
ARRAY [2,3,4] > ARRAY [1,2,5]
ARRAY [2,3,4] > ARRAY [2,3,3]
ARRAY [2,3,4] > ARRAY [2,3]
ARRAY [2,3,4] < ARRAY [2,3,4,5]
ARRAY [2,3,4]!= ARRAY [2,3,4,5]
下面通過幾個(gè)例子來(lái)說(shuō)明ARRAY謂詞的使用方法:
查找所有文件屬性為"存檔"的文件:
...WHERE attrib = ARRAY [ 0X820 ]
查找所有文件屬性為"存檔"或"壓縮"(針對(duì)于NTFS文件系統(tǒng))的文件:
...WHERE attrib = SOME ARRAY [0X820 ]
查找矢量值為[10,15,20]的ActiveX文檔:
...WHERE vectorprop = ARRAY [10, 15, 20]

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 桂阳县| 无为县| 称多县| 淅川县| 维西| 温宿县| 延庆县| 博客| 翼城县| 成武县| 青岛市| 石台县| 乌兰察布市| 新田县| 鄂温| 新邵县| 航空| 荆门市| 宣武区| 额济纳旗| 游戏| 托克托县| 二手房| 卢龙县| 台前县| 榆社县| 象州县| 甘孜县| 中西区| 阿巴嘎旗| 无为县| 乌拉特后旗| 泰顺县| 孙吴县| 将乐县| 舒兰市| 峨山| 凌云县| 醴陵市| 宁化县| 本溪|