如何以及为何创建Search .NET版(2)_.Net教程
推荐: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 安装的顺序应该是
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-如何以及为何创建Search .NET版(2)。