如何以及為何創(chuàng)建Search .NET版(2)_.Net教程
推薦:ASP.NET網(wǎng)絡(luò)編程中常用到的27個(gè)函數(shù)集1、DateTime 數(shù)字型 以下為引用的內(nèi)容: System.DateTime currentTime=new System.DateTime(); 1.1 取當(dāng)前年月日時(shí)分秒 currentTime=System.DateTime.
轉(zhuǎn)換
Search 體系結(jié)構(gòu)由三個(gè)組件組成:
Word Parsing and Vocabulary
Best Bets
Search Results
Search 的 .NET 端口的體系結(jié)構(gòu)與基于 ASP 的版本相同(參見圖 1)。下面讓我們深入了解一下各個(gè)組件。
(圖1)
圖 1.用戶提交查詢后,(1) 將查詢先提交給解析器 (Parser) 進(jìn)行詞條分割和詞匯解析,(2) 將找到的項(xiàng)目的顯示術(shù)語 (Display Term) 傳給 Best Bets,(3) 將找到的項(xiàng)目的首選術(shù)語 (Preferred Term) 和剩余項(xiàng)目傳給 Search Results,(4) 使用 XSL 樣式表編譯生成的 XML 文檔,(5) 給用戶的 Web 瀏覽器提交 HTML。單擊以放大。
Word Parsing and Vocabulary _ 這是一個(gè)包含一個(gè) C COM 對(duì)象的 Windows 腳本組件,它暴露出 Search 中所支持的所有語言的各種詞條分割程序。這種設(shè)計(jì)之所以必要是因?yàn)樵~條分割程序的接口不容易編寫成腳本,并且通常需要一種 C 可編腳本的封裝(盡管這是有辦法做到的:以后將對(duì)此進(jìn)行詳細(xì)解釋)。在向 .NET 框架移植的過程中,我們使用了 C 對(duì)象上的類型列表導(dǎo)出程序 (TLBIMP.EXE),并通過 .NET 中的 Interop 技術(shù)對(duì)其進(jìn)行調(diào)用,這樣您就可以調(diào)用現(xiàn)有的 COM 對(duì)象了。
Vocabulary Object 運(yùn)行 Xpath(查詢 XML 文檔的語言)查詢,以便將搜索詞條映射到首選術(shù)語。它同時(shí)去除了干擾詞條,并產(chǎn)生一種格式化的數(shù)據(jù)結(jié)構(gòu),適合于 Best Bets 和 Search Results 組件進(jìn)行消耗。一項(xiàng)重要成果是,這個(gè)相當(dāng)復(fù)雜的小腳本得以移植到 C#,我們還可以繼續(xù)從中調(diào)用傳統(tǒng)對(duì)象。下面是 Vocabulary Object 中的一個(gè)小代碼示例:
|
以下為引用的內(nèi)容: // We return an array of VocabularyObjects after parsing the user´s search // text. This ability to create simple typed structures in C# vastly improves // our code modularity and self-documentation. Here is the definition of // VocabularyObject: public struct VocabularyObject { public string PREFERREDTERM; // structure members public string DISPLAYTERM; public bool FOUND; public string ORIGPHRASE; public bool MULTITERM; public bool MULTIWORD; // Constructor public VocabularyObject(string preferredterm,bool found,string origphrase, bool multiterm,bool multiword,string displayterm) { PREFERREDTERM = preferredterm; FOUND = found; ORIGPHRASE = origphrase; MULTITERM = multiterm; MULTIWORD = multiword; DISPLAYTERM=displayterm; } } // Example usage. Because the parameters to the objects constructor are // typed, we´ll get a compiler error message if we passed an integer // where a string was expected, for example. This is a very nice feature // over traditional scripting environments! VocabularyObject vo("Microsoft DirectX",true,"dx",false,false,"DirectX"); |
.NET 環(huán)境的其中一個(gè)優(yōu)點(diǎn)就是,您可以創(chuàng)建用于整個(gè)代碼的多數(shù)據(jù)結(jié)構(gòu)。上面最后一行是闡明如何使用這些 Vocabulary Object 的代碼結(jié)構(gòu)的語句實(shí)例。
Best Bets _ 這是一個(gè)小腳本組件,它可提供對(duì)本地化 XML 文檔的 XPath 查詢,并可產(chǎn)生加按語的 URL 鏈接。XML 文檔裝載于每個(gè) Search 應(yīng)用程序?qū)嵗膽?yīng)用范圍,并既可單獨(dú)工作,又可與 Vocabulary 對(duì)象的方法緊密耦合。移植小腳本是 100% 向 .NET 框架的轉(zhuǎn)換,并可利用 System.IO 和 XML DataNavigator 類 (System.NewXml 命名空間)。
這是最簡單的移植組件。它幾乎是行對(duì)行地從 Jscript 向 C# 的轉(zhuǎn)換。我們僅在某些地方對(duì)代碼作了一些更改,以便利用新的 XML DataNavigator 類 - 用來查詢并更新 XML 文檔的 .NET 通用語言運(yùn)行時(shí)間部分。
Search Results - 這一復(fù)雜的組件與 Site Server 3.0 相接,從而獲得與客戶的搜索查詢相匹配的實(shí)際頁面描述和鏈接。它還包含一種完善的緩存算法。
分享:關(guān)于ASP.NET在IIS一些問題的經(jīng)驗(yàn)總結(jié)很多開發(fā)人員對(duì)于IIS和ASPNET的安裝等問題困擾,特此做下面的小總結(jié),請(qǐng)大家多交流!iis 壞了修復(fù)辦法! 一般IIS運(yùn)行不了ASP.NET,試一下下面四種方法,99%有效: 1。.NET 安裝的順序應(yīng)該是
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 如何在.NET環(huán)境下為網(wǎng)站增加IP過濾功能
- 關(guān)于一些很酷的.Net技巧的翻譯
- 如何在VB.NET中利用Split和Replace函數(shù)計(jì)算字?jǐn)?shù)
- ASP.NET中利用存儲(chǔ)過程實(shí)現(xiàn)模糊查詢
- 為GridView新增記錄的功能
- 解析運(yùn)行asp.net服務(wù)器權(quán)限設(shè)置的6個(gè)問題
- 淺談ASP.NET2.0中配置文件的加密與解密
- 投票結(jié)果的圖片進(jìn)度條顯示
- ASP.NET頁面事件:順序與回傳詳解
- 談ASP.NET創(chuàng)建Web服務(wù)的使用事務(wù)
- 相關(guān)鏈接:
- 教程說明:
.Net教程-如何以及為何創(chuàng)建Search .NET版(2)
。