如何以及為何創建Search .NET版(2)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET網絡編程中常用到的27個函數集
      1、DateTime 數字型 以下為引用的內容: System.DateTime currentTime=new System.DateTime(); 1.1 取當前年月日時分秒 currentTime=System.DateTime.

      轉換

      Search 體系結構由三個組件組成:

      Word Parsing and Vocabulary
        Best Bets
        Search Results

      Search 的 .NET 端口的體系結構與基于 ASP 的版本相同(參見圖 1)。下面讓我們深入了解一下各個組件。

      (圖1)

      圖 1.用戶提交查詢后,(1) 將查詢先提交給解析器 (Parser) 進行詞條分割和詞匯解析,(2) 將找到的項目的顯示術語 (Display Term) 傳給 Best Bets,(3) 將找到的項目的首選術語 (Preferred Term) 和剩余項目傳給 Search Results,(4) 使用 XSL 樣式表編譯生成的 XML 文檔,(5) 給用戶的 Web 瀏覽器提交 HTML。單擊以放大。

      Word Parsing and Vocabulary _ 這是一個包含一個 C COM 對象的 Windows 腳本組件,它暴露出 Search 中所支持的所有語言的各種詞條分割程序。這種設計之所以必要是因為詞條分割程序的接口不容易編寫成腳本,并且通常需要一種 C 可編腳本的封裝(盡管這是有辦法做到的:以后將對此進行詳細解釋)。在向 .NET 框架移植的過程中,我們使用了 C 對象上的類型列表導出程序 (TLBIMP.EXE),并通過 .NET 中的 Interop 技術對其進行調用,這樣您就可以調用現有的 COM 對象了。

      Vocabulary Object 運行 Xpath(查詢 XML 文檔的語言)查詢,以便將搜索詞條映射到首選術語。它同時去除了干擾詞條,并產生一種格式化的數據結構,適合于 Best Bets 和 Search Results 組件進行消耗。一項重要成果是,這個相當復雜的小腳本得以移植到 C#,我們還可以繼續從中調用傳統對象。下面是 Vocabulary Object 中的一個小代碼示例:

      以下為引用的內容:

      // 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 環境的其中一個優點就是,您可以創建用于整個代碼的多數據結構。上面最后一行是闡明如何使用這些 Vocabulary Object 的代碼結構的語句實例。

      Best Bets _ 這是一個小腳本組件,它可提供對本地化 XML 文檔的 XPath 查詢,并可產生加按語的 URL 鏈接。XML 文檔裝載于每個 Search 應用程序實例的應用范圍,并既可單獨工作,又可與 Vocabulary 對象的方法緊密耦合。移植小腳本是 100% 向 .NET 框架的轉換,并可利用 System.IO 和 XML DataNavigator 類 (System.NewXml 命名空間)。

      這是最簡單的移植組件。它幾乎是行對行地從 Jscript 向 C# 的轉換。我們僅在某些地方對代碼作了一些更改,以便利用新的 XML DataNavigator 類 - 用來查詢并更新 XML 文檔的 .NET 通用語言運行時間部分。

      Search Results - 這一復雜的組件與 Site Server 3.0 相接,從而獲得與客戶的搜索查詢相匹配的實際頁面描述和鏈接。它還包含一種完善的緩存算法。

      分享:關于ASP.NET在IIS一些問題的經驗總結
      很多開發人員對于IIS和ASPNET的安裝等問題困擾,特此做下面的小總結,請大家多交流!iis 壞了修復辦法! 一般IIS運行不了ASP.NET,試一下下面四種方法,99%有效: 1。.NET 安裝的順序應該是

      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程