《硅谷》杂志:基于ASP.NET搜索引擎研究与实现 |
2013-06-04 11:36 作者:蓝滨 王征 来源:《硅谷》杂志 HV: 编辑: 【搜索试试】
|
|
硅谷网文 据《硅谷》杂志2012年第23期刊文称,作为世界上最大的信息库,是全球范围内传播信息的重要渠道。但网上资源的分布相当分散且无统一的管理。普通用户对信息的检索越来越困难。搜索引擎的出现大大的改善这种情况,互联网的快速发展也使搜索引擎不断的发展着。对搜索引擎的工作原理及相关技术作详细的分析与讨论,以ASP.NET作为技术基础,实现一个搜索引擎。
0引言
随着Intemet技术的飞速发展,网络信息呈指数级速度增长。在信息海洋中人们寻找所需信息的难度倍增,于是搜索引擎作为重要的网络导航工具应运而生。成为我们从浩瀚的互联网海洋中汲取知识的主要手段,给我们在信息海洋中冲浪提供了方便,缩短了查找信息的时间,避免了资源的浪费,提高了工作效率。自1994年世界上第一个搜索引擎Yahoo诞生以来,搜索引擎的市场价值日益提升,越来越多的研究人员加入搜索引擎的研究与开发中来。搜索引擎按工作方式不同可分为三类:目录式搜索引擎、元搜索引擎、关键词搜索引擎。目前主要流行的是关键词搜索引擎。本文以关键词搜索引擎为研究对象,建立开源搜索引擎模型,并利用ASP.NET技术,为后期研究个性化搜索应用提供原型基础[1]。
1搜索引擎概述
1.1搜索引擎的基本原理
搜索引擎并不真正搜索互联网,它搜索的实际上是预先整理好的网页索引数据库。真正意义上的搜索引擎,通常指的是收集了互连网上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度高低,依次排列。
1.2搜索引擎的执行步骤
搜索引擎的原理可以看作三步:从互联网上抓取网页、建立索引数据库和在索引数据库中搜索并进行排序[2]。抓取网页:每个独立的搜索引擎都有自己的网页抓取程序(Spider)。利用它能够从互联网上自动收集网页的的超链接,连续地抓取网页,被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。建立索引数据库:搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。首先,由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息将所抓取的网页按照其所属的类别进行分类,对这些被分类的网页进行提取,建立索引文件,然后用这些相关信息建立网页索引数据库。在索引数据库中排序:当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
2搜索引擎系统规划
为了较好的实现搜索引擎对网页信息的自动搜索,处理和对客户查询信息的快速反馈,系统采用了B/S模式的网络结构,以网站的形式来提供检索服务。将系统分成以下几个模块:管理员登陆模块,用户建议模块,系统管理模块,建议管理模块,网页“爬取"模块,网页处理模块,索引创建模块,查询模块。
3核心部分实现
3.1数据库设计
按照数据库的设计原理,数据库由多个数据表组成,数据表又按照一定的格式由一条条记录组成。数据表设计时,主要明确组成该表格的字段组成名称,字段类型,字段长度以及其他的一些约束条件,如是否允许空值,是否该表格的关键项或者规定该字段的取值范围或者代码规则等。故系统数据库设计主要是设计数据库中的基本数据表,以及不同数据表之间的关系,以形成各种临时表或者视图。
3.2爬取处理设计与实现
网页爬取(Spider)模块与网页处理模块是搜索引擎实现的重点,它也是搜索引擎的重要要求之一,在Spider爬取到每一个网页并获取此网页的源代码后,便可以进行网页的预处理,从源代码中得到需要的信息,同时剔除网页中的无用信息。
首先Spider从开始网页数据库中读取开始网页列表,然后取出开始网页列表中的每一个网址,获得其源代码,然后再次从源代码中提取网页标题和链接地址,添加到开始列表中,同时对网页进行预处理,将处理后得到的网页信息存放到数据库中以方便为索引提供信息,并对处理过的网页进行标记,以此循环从而实现Spider的不断爬取。
部分源代码类中的属性如下:
publicclassOnePage{
publicstringpageSource;//页面源代码
publicstringpageURL;//页面地址
publicstringpageDIR;//页面存放地址
publicstringpageKind;//页面类型
}
3.3索引设计与实现
索引的设计采用基于字符串匹配的分词方法,使用这种分词方法下的最大匹配策略,它由正向最大匹配和逆向最大匹配结合而成。正向最大匹配从待分词语句左端开始,从左向右依次按照字典中的词语进行匹配。而逆向最大匹配恰与正向分词相反,从待分词语句的右端开始,从右向左依次按照字典中的语句进行匹配。后台的实现,主要思路是调用。其中递归调用CrawlCatalog函数遍历网站所有路径,找到网页文件获取相关信息,通过StripHtml函数去除HTML标记获得单词并写入Catalog类对象建立索引,然后将索引写入缓存中。部分关键代码如下:
publicclassProbSegment:SegmentStrategy{
publicoverrideList<string>Segment(stringtext,Dictionarydict){
MPSegmentms=newMPSegmentO;//正最大化匹配结果
RMSegmemrs=newRMSegmentO;//逆向最大化匹配结果
hatmsFreqTotal=0;//记录正向最大化频率
imrsFreqTotal=O;//记录逆向最大化频率
List<string>msSeged=ms.Segment(text,dicO;
List<string>rsSeged=rs.SegmenKtext,dicO;
foreach(stringminmsSeged){
msFreqTotal+=dict.GetFrequent(m);
}
}
3.4查询设计与实现
Lucene.Net.Index类可以用来管理索引,使用IndexSearcher类可以从索引信息中读取被索引的信息,再使用Lucene.Net.Search类提供的方法检索管理,根据查询条件,检索得到结果。而Lucene.Net.QueryParsers类中提供了多关键字查询等方法,可改善搜索的单一性。
3.5建议处理设计与实现
用户建议模块很简单,用户只需要输入建议网站的网址和注释,以及网站的种类,
然后将信息提交即可。建议处理是在管理员登陆后操作的,它的主要目的是审查用户提交的建议,将通过审查的建议转存到开始网址数据库表中,将没有通过审查的网页从用户建议数据库表中删除。
3.6用户界面设计与实现
界面设计是人与机器之间传递和交换信息的媒介,主要是从易用性和美观性两个原则出发进行设计的。界面设计主要分为用户界面关系设计和具体的用户界面设计。界面设计直接影响用户对系统的评价,从而影响系统的使用寿命。一个好的界面设计可以获得用户们的青睐,因此是一个重要的设计环节。.NET平台提供了丰富的图形用户界面(GUI)接口。该接口中,使用组件作为单位,可以创建窗口、菜单、文本框、文本区、标签和按钮等对象。太部分组件可以添加事件监听器,对用户输入等事件进行监听,并做出响应。在VisualStudio中已经实现了很多服务器空间,可以方便的设计出用户友好、外形美观的图形用户界面[3]。
4结语
与常用的搜索引擎相比,本模型大大抽象和简化了网络机器人技术和索引技术,对搜索引擎的技术进行了简单探讨。给出了中文分词和搜索引擎的代码实现。经过运行,基本符合搜索引擎网页爬取,网页处理,提供服务的三个要求。对搜索引擎的原理和基本实现技术提供了一些帮助。
作者简介:
蓝滨(1978-),男,汉族,辽宁营口人,讲师,主要从事计算机教学研究工作;王征(1979-),男,汉族,辽宁营口人,讲师,主要从事计算机教学研究工作。 |
|
|
|
【对“《硅谷》杂志:基于ASP.NET搜索引擎研究与实现”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|