如何以及为何创建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教程