基于Ajax+Lucene构建搜索引擎的设计和实现
无需注册登录,支付后按照提示操作即可获取该资料.
摘 要
通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部分,Lucene是构建搜索引擎的其中一种方式。搜索引擎系统是在.Net平台上用C#开发的,数据库是MSSQL Server 2000。主要完成的功能有:用爬虫抓取网页;获取有效信息放入数据库;通过Lucene建立索引;对简单关键字进行搜索;使用Ajax的局部刷新页面展示结果。
论文详细说明了系统开发的背景,开发环境,系统的需求分析,以及功能的设计与实现。同时讲述了搜索引擎的原理,系统功能,并探讨使用Ajax与服务器进行数据异步交互,从而改善现有的Web应用模式。(所有权: 爱毕业设计网 www.2bysj.cn)
关键词:Lucene.net;异步更新;Ajax;搜索引擎
The Design and Implementation for Constructing the Search Engine with Ajax and Lucene
Abstract
Obtaining useful information from web by search engines has become the important part of people's lives. Lucene is the way of constructing search engine. This system is based on the .Net platform using C#. The database is MSSQL Server 2000. Main functions are grasping web pages with crawls, adding effective information to the database, establishing index with Lucene, searching through keywords, and displaying the results finally.
This paper has showed the principle of search engine in the form of different modules, functions of this system, improving traditional web application model using Ajax. It shows explanation of the system’s background, development environment, system analysis of demanding, and functions of design.
Key words: Lucene.net; Asynchronous update; Ajax; Search engines
Lucene是一个基于Java的全文信息检索工具包,它为应用程序提供索引和搜索功能。Lucene目前是Apache Jakarta家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。Lucene是Java世界中常用的索引API,使用它提供的方法可以为文本资料创建索引,并提供检索。Lucene.net它只在命名方面采纳了.Net的建议,主要目标倾向于和Java Lucene兼容:一个是索引格式兼容,达到可以共同工作的目的;一个是命名接近(只相差很少,比如大小写等),目的是可以方便开发者使用JAVA Lucene相关的代码和资料。
索引是现代搜索引擎的核心,建立索引是把数据源处理成非常方便查询的索引文件的过程。为什么索引这么重要呢,试想你现在要在大量的文档中搜索含有某个关键词的文档,那么如果不建立索引的话你就需要把这些文档顺序的读入内存,然后检查这个文章中是不是含有要查找的关键词,这样的话就会耗费非常多的时间,想想搜索引擎可是在毫秒级的时间内查找出要搜索的结果的。这就是由于建立了索引的原因,你可以把索引想象成这样一种数据结构,他能够使你快速的随机访问存储在索引中的关键词,进而找到该关键词所关联的文档。Lucene采用的是一种称为反向索引(inverted index)的机制。反向索引就是说我们维护了一个词/短语表,对于这个表中的每个词/短语,都有一个链表描述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候,就能非常快的得到搜索结果。我们将在本系列文章的第二部分详细介绍Lucene的索引机制,由于Lucene提供了简单易用的API,所以也可以非常容易的使用Lucene对文档实现索引的建立。
对文档建立好索引后,就可以在这些索引上面进行搜索了。搜索引擎首先会对搜索的关键词进行解析,然后再在建立好的索引上面进行查找,最终返回和用户输入的关键词相关联的文档。(所有权: 爱毕业设计网 www.2bysj.cn)
Ajax技术
Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。包括:HTML和CSS,使用文档对象模型DOM作动态显示和交互,使用XML做数据交互和操作,使用XMLHttpRequest进行异步数据接收,使用JAVAScript将它们绑定在一起。
Ajax技术之中,核心的技术就是XMLHttpRequest,它最初的名称叫做XMLHTTP,是微软公司为了满足开发者的需要,1999年在IE5.0浏览器中率先推出的。后来这个技术被上述的规范命名为XMLHttpRequest。它正是Ajax技术之所以与众不同的地方。简而言之,XMLHttpRequest为运行于浏览器中的JavaScript脚本提供了一种在页面之内与服务器通信的手段。页面内的JAVAScript可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据。XMLHttpRequest的出现为Web开发提供了一种全新的可能性,甚至整个改变了人们对于Web应用由什么来组成的看法。它可以使我们以一种全新的方式来做Web开发,为用户提供更好的交互体验。(所有权: 爱毕业设计网 www.2bysj.cn)
本设计要实现的功能:
1. 能够对Internet上的网页内容、标题、链接等信息按链式收集。
2. 能够实现一定链接深度的网页收集,也就是在Internet上实现一定的URL级的数据收录。
3. 对收集到的数据存入MSSQL Server 2000等关系型数据库中、或者存入文本文件中。
4. 网站信息库中的信息会不断的变动,对收集到的数据需要定期的自动维护,做到定期的删除、从新收集。
5. 对收集到的数据进行关键词的检索。
6. 对检索出的数据要可定位性,即可以显示对数据的出处的链接。
7. 实现中英文分词功能,能够按中文或者英文单词检索数据。
8. 实现无刷新的显示搜索结果,对搜索用时的计算、显示,关键字高亮显示等。
9. 逻辑搜索功能比如“中国”AND“北京”AND NOT(“海淀区”AND“中关村”)。
目 录
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
1.4 本课题的研究方法 1
2 Lucene.net构建搜索引擎原理 2
2.1 全文搜索引擎 2
(所有权: 爱毕业设计网 www.2bysj.cn)
2.1.1 搜索引擎的分类 2
2.1.2 搜索引擎的工作原理 2
2.2 LUCENE与搜索引擎 3
2.3 索引和搜索 4
2.4 AJAX技术 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