毕业论文-宋永维-基于Solr的搜索引擎研究与实现.pdf
《毕业论文-宋永维-基于Solr的搜索引擎研究与实现.pdf》由会员分享,可在线阅读,更多相关《毕业论文-宋永维-基于Solr的搜索引擎研究与实现.pdf(57页珍藏版)》请在冰豆网上搜索。
本本科科生生毕毕业业论论文文(设计)(设计)题目:
基于Solr的搜索引擎研究与实现院系:
信息科学与技术学院计算机系专业:
网络工程学生姓名:
宋永维学号:
05374028指导教师:
高集荣(副教授)二九年四月-i-i摘摘要要随着信息时代的来临,人们的生活、学习、工作和娱乐已经与信息技术充分的融为一体。
随着群众对互联网参与度的增加和企事业单位信息化的逐步深入,信息量也成倍地增长,如何能更好地从浩如烟海的数字信息中快速、精准地查找到需要的信息,成为全国人民的迫切需求。
尤其是处于信息化建设道路上的中小企业,如何快速且廉价地开放自己的信息检索系统,对于企业的成长至关重要。
本文介绍了搜索引擎的基本原理,对搜索引擎的一些核心技术进行了介绍与深入的分析;介绍了Lucene搜索引擎工具包的架构及其基本使用;对基于开源搜索引擎包Lucene的搜索框架Solr进行架构、代码、配置等方面的研究;最后设计并实现了一个基于Solr1.3的简单可用的多库搜索引擎。
整个设计过程致力于提高管理维护的方便性和可扩展性。
关键词:
关键词:
Lucene;Solr;搜索引擎;爬虫;中文分词-ii-iiAbstractWiththeadventoftheinformationera,peopleslives,study,workandentertainmenthavebeenfullyintegratedwithinformationtechnology.WiththeparticipationofthemassesontheInternetandincreaseinthenumberofinformation-basedenterprises,theamountofinformationhasbecomeseveraltimesasbefore.Howtogetusefulinformationquicklyandaccuratelyhasbecomeanimportantthingtoeveryone.Forthesmallandmedium-sizedenterprises,howtodevelopitsownmessageretrievalsystemquicklyandcheaplyisessentialforthegrowthofenterprises.Inthispaper,weintroducethebasicprinciplesofsearchengineandanalysesanumberofcoretechnologies.IalsointroduceLucenesearchenginetools,itsbasicframeworkandhowtouseit.WeanalysesSolr,whichisanopensourcesearchenginebasedonLucene,anditsarchitecture,code,configuration.Atlast,wedesignandimplementasimplemulti-databasesearchenginebasedonSolr1.3.Keywords:
Lucene;Solr;SearchEngine;Spider;ChineseWordSegmentation-iii-iii目目录录第一章第一章前言前言.11.1绪论.11.2开源搜索引擎研究的意义和现状.3第二章第二章中文搜索引擎关键技术中文搜索引擎关键技术.42.1搜索引擎基本结构.42.2中文分词.62.3相关排序.92.4搜索引擎响应速度.132.5网络蜘蛛.14第三章第三章开源搜索引擎开源搜索引擎SOLRSOLR.163.1搜索引擎包LUCENE.163.1.1Lucene简介.163.1.2Lucene与Solr的关系.163.1.3Lucene的结构.173.1.4Lucene的使用.183.1.5Lucene的评分公式.223.1.6Lucene的搜索结果排序.233.2SOLR的介绍.243.2.1Solr的特点与优势.243.2.2Solr1.3的新特性.253.3SOLR的配置和使用.253.3.1Solr1.3服务器的部署.253.3.2Solr1.3体系结构图.263.3.3solr.xml配置文件.273.3.4schema.xml配置文件.273.3.5solrconfig.xml配置文件.293.3.6查询HTTP接口参数.323.4SOLR1.3的核心机制.323.4.1内核调用机制.323.4.2分库机制.333.4.3缓存机制.33第四章第四章基于基于SOLR的搜索引擎总体设计的搜索引擎总体设计.354.1设计背景和原则.35-iv-iv4.2整体结构与模块关系.35第五章第五章基于基于SOLR的搜索引擎详细设计与实现的搜索引擎详细设计与实现.375.1网络蜘蛛模块的设计与实现.375.2NEWAPI模块的设计与实现.385.3管理模块的设计与实现.395.4配置文件的配置.395.5分词模块的设计与实现.405.6查询模块的设计与实现.41第六章第六章结论结论.43参考参考文献文献.44致谢致谢.45-1-第一章第一章前言前言1.1绪论绪论随着信息技术的不断发展和人民对信息技术需求的不断增加,世界各国都在经历着前所未有的信息革命。
国家的发展离不开信息化,企业的发展离不开信息化,个人的工作、生活、学习和娱乐更是离不开信息化。
今日的中国也在跟随时代的步伐向着信息时代迈进,而且呈现出巨大的生机与活力,这是一个庞大的市场。
信息革命的深入必然带来信息的爆炸性增长。
据中国互联网信息中心(CNNIC)统计,截止2008年12月31日,中国已有网民数量2.98亿,网站287.8万个18。
如此巨大的信息聚集必然导致有效信息获取的难度增强和垃圾信息量增加。
于是,快速精准地获取有用信息的工具应运而生。
通用的搜索技术有数据库技术和搜索引擎技术,文献33中比较了两者的差别。
搜索引擎是信息检索的工具,因此对搜索引擎的研究应属于信息检索的分支。
搜索引擎是帮助用户快速精准地从庞大的信息体中搜索到所需信息的工具,其诞生至今不过10多年的时间而已,不过其发展却非常迅速。
表1-1总结搜索引擎发展历史上一些具有里程碑意义的事件,以求从整体上了解搜索引擎的发展历史。
表1-1搜索引擎发展大事记1990年麦吉尔大学学生发明Archie只是一个可以搜索的FTP文件名列表,用户通过输入精确的文件名来查询哪个FTP站点可以获得该文件1993年MartinKoster发明了ALIWEBArchie的HTTP版本,靠主动提交信息来建立链接索引,类似Yahoo!
1993年斯坦福大学学生发明Excite分析字词关系,以对互联网上信息做更有效的搜索1997年卡耐基梅隆大学的MichaelMauldin创建了Lycos第一次在索引程序中接入了spider程序;除相关度排序外,还提供了前缀匹配和字符相近限制;第一次使用了网页自动摘要1998年Google诞生Google在Pagerank、动态摘要、网页快照、DailyRefresh、多文档格式支持、地图、股票、词典、寻人等集成搜索、多语言支持、用户界面等功能上带来革新国内搜索引擎的研究相对国外较晚,不过搜索引擎在国内仍然取得了不少成绩。
-2-研究领域,北京大学开发出北京大学天网搜索引擎,并提出中文搜索引擎研发的许多方法和思想(文献88有相关介绍)。
在商业领域,百度已经成为了世界上使用人数最多的中文搜索引擎。
有学者认为:
现代搜索引擎建立在互联网和诸多计算机技术之上,所以很难将搜索引擎的缘起与哪个具体的产品对应起来1。
而且,在搜索引擎的发展演化过程中,出现过许多不同种类的搜索引擎,谢新洲主编的网络信息检索技术与案例2一书中按照信息组织方式将搜索引擎分成如下三类。
(1)目录式搜索引擎目录式搜索引擎依靠人工发现信息,并依靠标引人员自身的知识对信息进行分类、提取主题词、建立关键字索引和目录分类体系。
用户可以通过两种方式来使用。
一种是浏览查询,从最高层目录开始,顺着目录树逐层深入,直到找到所需信息为止;另一种是通过关键词检索。
这类搜索引擎具有检索效率高的有点,但索引建立的效率却比较低,信息更新也比较慢。
目录式搜索引擎的例子有Yahoo和新浪分类目录。
(2)索引式搜索引擎索引式搜索引擎依靠一个被称作蜘蛛(Spider)或机器人(Robot)的程序,根据特定网络协议和原则,自动地从互联网上获取信息来建立索引。
并采用一定得方法对索引库进行更新,以确保索引库与互联网上信息的实时对应。
这类搜索引擎主要依靠程序自动地搜集和维护信息,从而将标引人员解放出来,同时索引库可以比较大,实时性也更强。
著名的索引式搜索引擎有Google,百度等。
(3)元搜索引擎元搜索引擎也叫集合式搜索引擎,它将多个搜索引擎集中起来,提供统一的检索界面给用户。
因此元搜索引擎可以理解为一个经过包装的搜索引擎群体。
元搜索引擎有两种工作方式,一种是并行式元搜索引擎,另外一种是串行式元搜索引擎。
并行式元搜索引擎在用户提交查询词后,同时将查询请求发往多个搜索引擎,在接收到各个搜索引擎返回的结果后,根据一定得排序算法重新排序后返回给用户。
串行式元搜索引擎仅提供一个搜索引擎的列表,由用户选择使用哪个搜索引擎来进行查询,因此它可以说是“搜索引擎的搜索引擎”2,帮助用户进行搜索引擎的选择。
尽管搜索引擎分类众多,但其基本思想是一致的。
图1-1展示了搜索引擎的基本思想。
首先搜集目标信息,然后将信息进行分析处理,并按照一定得数据结构进行存储,最后用户从这些被存储的数据中检索出有用的信息。
-3-1.2开源搜索引擎研究的意义和现状开源搜索引擎研究的意义和现状开源搜索引擎的研究具有极其重大的意义。
首先,由于只有很少的人能够接触大型商业搜索引擎,所以大部分人游离在专业搜索引擎技术之外,开源搜索引擎无疑为人们学习和研究搜索引擎技术提供了极好的途径。
再者,开源搜索引擎能够吸引更多人贡献自己的才智,这必将会推动搜索引擎技术的进步。
从市场的角度来说,越来越多的企业对搜索技术有迫切的需求,这些需求有极强的差异,例如,有的需要的是对文档的搜索,有的需要对网页的搜索等等。
这些企业中,大部分是中小企业,他们无力组建自己的开发团队来开发搜索引擎,同时也不可能花巨资购买专业化的搜索引擎,他们只希望花最少的钱来满足自己的需要。
这时候,开源的搜索引擎既帮了企业的忙,也帮了开发人员的忙,开发人员可以通过开源搜索引擎快速地开发出廉价的个性化的搜索引擎,这样的搜索引擎无疑会得到企业更多的青睐。
开源搜索引擎在开源的潮流和搜索引擎迫切的需求中诞生,经过多年的发展,已经取得了许多成绩。
这一领域最为流行的是Lucene家族,它以Lucene库为基础派生出许多知名的搜索引擎:
Nutch、Solr、Compass、LIUS等。
其中Nutch是以Lucene为基础的Web搜索引擎,利用它可以快速地搭建像Google一样的搜索引擎;Solr是Lucene基础上的一个搜索引擎框架,通过对其配置,可以实现许多强大的功能,而且索引和查询的效率都极高,利用它开发个性化的搜索引擎是不错的选择;Comp