基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx

上传人:b****3 文档编号:2063406 上传时间:2022-10-26 格式:DOCX 页数:22 大小:265.06KB
下载 相关 举报
基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx_第1页
第1页 / 共22页
基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx_第2页
第2页 / 共22页
基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx_第3页
第3页 / 共22页
基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx_第4页
第4页 / 共22页
基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx

《基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx》由会员分享,可在线阅读,更多相关《基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx(22页珍藏版)》请在冰豆网上搜索。

基于Ajax+Lucene构建搜索引擎的设计和实现论文.docx

基于Ajax+Lucene构建搜索引擎的设计和实现论文

基于Ajax+Lucene构建搜索引擎的设计与实现

摘要

通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部分,Lucene是构建搜索引擎的其中一种方式。

搜索引擎系统是在.Net平台上用C#开发的,数据库是MSSQLServer2000。

主要完成的功能有:

用爬虫抓取网页;获取有效信息放入数据库;通过Lucene建立索引;对简单关键字进行搜索;使用Ajax的局部刷新页面展示结果。

论文详细说明了系统开发的背景,开发环境,系统的需求分析,以及功能的设计与实现。

同时讲述了搜索引擎的原理,系统功能,并探讨使用Ajax与服务器进行数据异步交互,从而改善现有的Web应用模式。

关键词:

L;异步更新;Ajax;搜索引擎

TheDesignandImplementationforConstructingtheSearchEnginewithAjaxandLucene

Abstract

Obtainingusefulinformationfromwebbysearchengineshasbecometheimportantpartofpeople'slives.Luceneisthewayofconstructingsearchengine.Thissystemisbasedonthe.NetplatformusingC#.ThedatabaseisMSSQLServer2000.Mainfunctionsaregraspingwebpageswithcrawls,addingeffectiveinformationtothedatabase,establishingindexwithLucene,searchingthroughkeywords,anddisplayingtheresultsfinally.

Thispaperhasshowedtheprincipleofsearchengineintheformofdifferentmodules,functionsofthissystem,improvingtraditionalwebapplicationmodelusingAjax.Itshowsexplanationofthesystem’sbackground,developmentenvironment,systemanalysisofdemanding,andfunctionsofdesign.

Keywords:

L;Asynchronousupdate;Ajax;Searchengines

目录

论文总页数:

19页

1引言1

1.1课题背景1

1.2国内外研究现状1

1.3本课题研究的意义1

1.4本课题的研究方法1

2L构建搜索引擎原理2

2.1全文搜索引擎2

2.1.1搜索引擎的分类2

2.1.2搜索引擎的工作原理2

2.2Lucene与搜索引擎3

2.3索引和搜索4

2.4Ajax技术4

3需求分析5

3.1同步环境5

3.2功能需求6

3.3性能需求6

3.4输入输出要求7

3.5运行需求7

4方案设计7

4.1搜索引擎模型7

4.2数据库的设计7

4.3模块设计8

5系统实现10

5.1开发环境10

5.2关键代码详解10

5.2.1代码结构10

5.2.2爬虫部分11

5.2.3索引生成12

5.2.4页面查询13

6测试14

6.1功能测试14

结论16

参考文献17

致谢18

声明19

1引言

1.1课题背景

Lucene是一个基于Java的全文信息检索工具包,它为应用程序提供索引和搜索功能。

Lucene目前是ApacheJakarta家族中的一个开源项目。

也是目前最为流行的基于Java开源全文检索工具包。

Lucene是Java世界中常用的索引API,使用它提供的方法可以为文本资料创建索引,并提供检索。

L它只在命名方面采纳了.Net的建议,主要目标倾向于和JavaLucene兼容:

一个是索引格式兼容,达到可以共同工作的目的;一个是命名接近(只相差很少,比如大小写等),目的是可以方便开发者使用JavaLucene相关的代码和资料。

1.2国内外研究现状

国内外对搜索引擎研究比较著名的便是Google了。

无论搜索技术本身还是搜索范围与深度,Google搜索总是所有搜索引擎的目标。

Google专业领域搜索方面做的成效是有目共睹的。

Google在低层次的智能搜索方面已经开始研究很多年了,实际的成果就是翻译方面。

利用搜索技术,加上经验主义发展出来的Google翻译机器人,在外语翻译方面已经比传统的翻译好很多了。

但是翻译仅仅是学术方面的应用,更重要的是Google建立起来的海量搜索历史记录。

如果把这些海量搜索历史记录当作是词典的话,那么如果与搜索技术的结合发展成为低层次的只能搜索,那么应用就将大大加强与广泛。

国内,对搜索引擎的专注和对中文的理解能力也是中国本土搜索引擎行业独特的竞争力。

国内比较著名的比如XX,更专注对中文的处理。

中文的意思多种多样,是很难用程序处理的。

目前国内外都在做中文引擎,门户网站、非门户网站也都在进军搜索业,成立搜索门户。

为了满足用户更深层次的需求,国内的搜索引擎也在不断的完善自己。

如何将人类的知识和智能加入到检索中,如何使搜索引擎的质量产生一个质的飞跃,也是国内搜索引擎努力的方向。

中国网民对智能化搜索需求也是显而易见的。

这也意味着搜索不再是简单的技术或者是网络导航而已,而是会成为普通人生活中必备的工具之一。

1.3本课题研究的意义

随着计算机技术和互联网技术的飞速发展,网络上的信息量急剧增长,要在浩如烟海的网络世界中寻找需要的信息,作为现代信息获取技术的主要应用,那么搜索引擎是必不可少的。

通过L,可以很方便的构建起搜索引擎,本毕业设计除了考查使学生综合运用以前所学知识的能力,同时也使学生了解当今搜索及编程的一些新技术,并模拟简单的搜索引擎开发。

1.4本课题的研究方法

在本系统的开发过程中,首先分析了搜索引擎的相关功能,写出需求分析;其次,综合运用以前所学的相关知识(数据库,C#等),选择所熟悉的开发工具进行开发(本系统选择了MicrosoftVisualStudio.NET2003作为开发平台,开发语言选择了C#;数据库采用MicrosoftSQLServer2000)。

由于Lucene不是完整的搜索引擎程序,只为搜索引擎应用提供了工具包,在A平台中,可使用L这个对Lucene兼容的库。

使用L协助完成搜索引擎相关的网页爬虫与抓取,为文档建立索引,关键词搜索的功能,通过Ajax优化系统,完成页面的局部刷新功能,给用户好的体验。

2L构建搜索引擎原理

2.1全文搜索引擎

2.1.1搜索引擎的分类

获得网站网页资料,能够建立数据库并提供查询的系统,我们都可以把它叫做搜索引擎。

真正意义上的搜索引擎,通常指的是收集了因特网上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。

当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。

在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度排列。

按照工作原理的不同,可以把它们分为两个基本类别:

全文搜索和分类目录。

全文搜索引擎通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。

从搜索来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果。

分类目录则是通过人工的方式收集整理网站资料形成数据库的,比如雅虎中国以及国内的搜狐、新浪、网易分类目录。

另外,在网上的一些导航站点,也可以归属为原始的分类目录。

2.1.2搜索引擎的工作原理

搜索引擎的原理,可以看作三步:

从互联网上抓取网页,建立索引数据库,在索引数据库中搜索。

全文搜索引擎的“网络蜘蛛”能够扫描一定地址范围内的网站,并沿着网络上的链接从一个网页到另一个网页,从一个网站到另一个网站采集网页资料。

它为保证采集的资料最新,还会回访已抓取过的网页。

网络机器人或网络蜘蛛采集的网页,还要有其它程序进行分析,根据一定的相关度算法进行大量的计算建立网页索引,才能添加到索引数据库中。

我们平时看到的全文搜索引擎,实际上只是一个搜索引擎系统的检索界面,当你输入关键词进行查询时,搜索引擎会从庞大的数据库中找到符合该关键词的所有相关网页的索引,并按一定规则呈现给我们。

不同的搜索引擎,网页索引数据库不同,搜索结果也就不尽相同。

利用能够从互联网上自动收集网页的Spider程序,自动访问互联网,并沿着网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。

然后建立索引数据库,由分析索引程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),然后用这些相关信息建立网页索引数据库。

接下来在索引数据库中搜索排序,当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。

最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。

搜索引擎只能搜到它网页索引数据库里储存的内容。

2.2Lucene与搜索引擎

Lucene是一个全文信息检索工具包,为应用程序提供索引和搜索功能。

和JavaLucene兼容的L可以用在.net平台。

Lucene能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene就能对你的文档进行索引和搜索。

比如你要对一些HTML文档,PDF文档进行索引的话你就首先需要把HTML文档和PDF文档转化成文本格式的,然后将转化后的内容交给Lucene进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。

不规定要索引的文档的格式也使Lucene能够适用于几乎所有的搜索应用程序。

如图1表示了搜索应用程序和Lucene之间的关系,也反映了利用Lucene构建搜索应用程序的流程:

图1应用程序和Lucene

2.3索引和搜索

索引是现代搜索引擎的核心,建立索引是把数据源处理成非常方便查询的索引文件的过程。

为什么索引这么重要呢,试想你现在要在大量的文档中搜索含有某个关键词的文档,那么如果不建立索引的话你就需要把这些文档顺序的读入内存,然后检查这个文章中是不是含有要查找的关键词,这样的话就会耗费非常多的时间,想想搜索引擎可是在毫秒级的时间内查找出要搜索的结果的。

这就是由于建立了索引的原因,你可以把索引想象成这样一种数据结构,他能够使你快速的随机访问存储在索引中的关键词,进而找到该关键词所关联的文档。

Lucene采用的是一种称为反向索引(invertedindex)的机制。

反向索引就是说我们维护了一个词

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1