基于Ajax+Lucene构建搜索引擎的设计和实现
来源:杂志发表网时间:2015-12-21 所属栏目:计算机技术
摘要
通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部分,Lucene是构建搜索引擎的其中
一种方式。搜索引擎系统是在Net平台上用C#开发的,数据库是MSSQLServer2000。主要完成的功能有
:用爬虫抓取网页;获取有效信息放入数据库;通过Lucene建立索引;对简单关键字进行搜索;使用Ajax
的局部刷新页面展示结果。
论文详细说明了系统开发的背景,开发环境,系统的需求分析,以及功能的设计与实现。同时讲述了搜索
引擎的原理,系统功能,并探讨使用Ajax与服务器进行数据异步交互,从而改善现有的Web应用模式。
关键词:Lucene net;异步更新;Ajax;搜索引擎
引言
1.1课题背景
Lucene是一个基于Java的全文信息检索工具包,它为应用程序提供索引和搜索功能。Lucene目前是Apache
Jakarta家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。Lucene是Java世界
中常用的索引API,使用它提供的方法可以为文本资料创建索引,并提供检索。Lucene. net它只在命名方
面采纳了.Net的建议,主要目标倾向于和JavaLucene兼容:一个是索引格式兼容,达到可以共同工作的
目的;一个是命名接近(只相差很少,比如大小写等),目的是可以方便开发者使用JavaLucene相关的
代码和资料。
1.2国内外研究现状
国内外对搜索引擎研究比较著名的便是Google了。无论搜索技术本身还是搜索范围与深度,Google搜索总
是所有搜索引擎的目标。Google专业领域搜索方面做的成效是有目共睹的。Google在低层次的智能搜索方
面已经开始研究很多年了,实际的成果就是翻译方面。利用搜索技术,加上经验主义发展出来的Google翻
译机器人,在外语翻译方面已经比传统的翻译好很多了。但是翻译仅仅是学术方面的应用,更重要的是
Google建立起来的海量搜索历史记录。如果把这些海量搜索历史记录当作是词典的话,那么如果与搜索技
术的结合发展成为低层次的只能搜索,那么应用就将大大加强与广泛。
国内,对搜索引擎的专注和对中文的理解能力也是中国本土搜索引擎行业独特的竞争力。国内比较著名的
比如百度,更专注对中文的处理。中文的意思多种多样,是很难用程序处理的。目前国内外都在做中文引
擎,门户网站、非门户网站也都在进军搜索业,成立搜索门户。为了满足用户更深层次的需求,国内的搜
索引擎也在不断的完善自己。如何将人类的知识和智能加入到检索中,如何使搜索引擎的质量产生一个质
的飞跃,也是国内搜索引擎努力的方向。中国网民对智能化搜索需求也是显而易见的。这也意味着搜索不
再是简单的技术或者是网络导航而已,而是会成为普通人生活中必备的工具之一。
1.3本课题研究的意义
随着计算机技术和互联网技术的飞速发展,网络上的信息量急剧增长,要在浩如烟海的网络世界中寻找需
要的信息,作为现代信息获取技术的主要应用,那么搜索引擎是必不可少的。通过Lucene.net,可以很方
便的构建起搜索引擎,本毕业设计除了考查使学生综合运用以前所学知识的能力,同时也使学生了解当今
搜索及编程的一些新技术,并模拟简单的搜索引擎开发。
1.4本课题的研究方法
在本系统的开发过程中,首先分析了搜索引擎的相关功能,写出需求分析;其次,综合运用以前所学的相
关知识(数据库,C#等),选择所熟悉的开发工具进行开发(本系统选择了MicrosoftVisualStudio
.NET2003作为开发平台,开发语言选择了C#;数据库采用MicrosoftSQLServer2000)。由于Lucene不
是完整的搜索引擎程序,只为搜索引擎应用提供了工具包,在Asp. net平台中,可使用Lucene. net这个对
Lucene兼容的库。使用Lucene. net协助完成搜索引擎相关的网页爬虫与抓取,为文档建立索引,关键词搜
索的功能,通过Ajax优化系统,完成页面的局部刷新功能,给用户好的体验。
2Lucene.net构建搜索引擎原理
2.1全文搜索引擎
2.1.1搜索引擎的分类
获得网站网页资料,能够建立数据库并提供查询的系统,我们都可以把它叫做搜索引擎。真正意义上的搜
索引擎,通常指的是收集了因特网上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引
,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的
网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度
排列。按照工作原理的不同,可以把它们分为两个基本类别:全文搜索和分类目录。
全文搜索引擎通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户
查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。从搜索来源的角度,全文搜索引擎
又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”
(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用;另一种则是租用其他引擎的
数据库,并按自定的格式排列搜索结果。
分类目录则是通过人工的方式收集整理网站资料形成数据库的,比如雅虎中国以及国内的搜狐、新浪、网
易分类目录。另外,在网上的一些导航站点,也可以归属为原始的分类目录。
2.1.2搜索引擎的工作原理
搜索引擎的原理,可以看作三步:从互联网上抓取网页,建立索引数据库,在索引数据库中搜索。
全文搜索引擎的“网络蜘蛛”能够扫描一定地址范围内的网站,并沿着网络上的链接从一个网页到另一
个网页,从一个网站到另一个网站采集网页资料。它为保证采集的资料最新,还会回访已抓取过的网页。
网络机器人或网络蜘蛛采集的网页,还要有其它程序进行分析,根据一定的相关度算法进行大量的计算建
立网页索引,才能添加到索引数据库中。我们平时看到的全文搜索引擎,实际上只是一个搜索引擎系统的
检索界面,当你输入关键词进行查询时,搜索引擎会从庞大的数据库中找到符合该关键词的所有相关网页
的索引,并按一定规则呈现给我们。不同的搜索引擎,网页索引数据库不同,搜索结果也就不尽相同。
利用能够从互联网上自动收集网页的Spider程序,自动访问互联网,并沿着网页中的所有URL爬到其它网
页,重复这过程,并把爬过的所有网页收集回来。然后建立索引数据库,由分析索引程序对收集回来的网
页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、
生成时间、大小、与其它网页的链接关系等),然后用这些相关信息建立网页索引数据库。接下来在索引
数据库中搜索排序,当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的
所有相关网页。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户
。搜索引擎只能搜到它网页索引数据库里储存的内容。
2.2Lucene与搜索引擎
Lucene是一个全文信息检索工具包,为应用程序提供索引和搜索功能。和JavaLucene兼容的Lucene.net
可以用在.net平台。Lucene能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的
文本的,Lucene就能对你的文档进行索引和搜索。比如你要对一些HTML文档,PDF文档进行索引的话你就
首先需要把HTML文档和PDF文档转化成文本格式的,然后将转化后的内容交给Lucene进行索引,然后把创
建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。不规定要
索引的文档的格式也使Lucene能够适用于几乎所有的搜索应用程序。
点此咨询学术顾问 快人一步得到答案