网络搜索引擎的设计和各部件的实现,搜索引擎论文_第1页
网络搜索引擎的设计和各部件的实现,搜索引擎论文_第2页
网络搜索引擎的设计和各部件的实现,搜索引擎论文_第3页
网络搜索引擎的设计和各部件的实现,搜索引擎论文_第4页
网络搜索引擎的设计和各部件的实现,搜索引擎论文_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络搜索引擎的设计和各部件的实现,搜索引擎论文随着互联网技术的飞速发展,互联网中的信息量也越来越大,怎样愈加有效地利用这些信息资源,已经越来越遭到人们的关注。互联网中存在的信息来源特别广泛,与此同时,存在的形式也是多种多样,包括图像、文本、视频、音频等不同的形式,面对着不同来源,不同形式的海量信息,怎样准确、快速地找到自个所需要的信息成为我们在使用互联网时候所面临的一个问题,因而,开发一个搜索引擎就非常必要。当前,成熟的搜索引擎如Lycos、Yahoo、Google、百度等各有优点,如Google比Yahoo能更快、更准确搜索到所需信息,百度中文搜索引擎支持网页信息检索,图片,Flash,音乐等多媒体信息的检索等,而本文搜索引擎的开发是通过网络爬虫抓取信息,然后再通过一定的技术对网页信息进行提取、处理,将抓取到的信息存放在索引数据库中,通过一些查询接口实现信息检索,帮助用户在海量的信息中迅速地、准确地找到用户真正感兴趣的信息。1搜索引擎的设计1.1搜索引擎构造设计搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎主要包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。全文搜索引擎是当前广泛应用的主流搜索引擎。它能够对被索引的文章中的每一个词建立索引,在用户检索时,检索程序就会根据事先建立好的索引进行查找,并将查找的结果反应给用户。本文的主要工作就是使用Java设计并实现了一个Web全文搜索引擎,搜索引擎构造设计如此图1所示:.1.2网络蜘蛛构造设计开创建立搜索引擎的第一步就是要设计一个程序在海量的互联网信息中遨游,并抓取网页信息。这个程序被称为网络蜘蛛,网络蜘蛛也被称为自动搜索机器人,它主要用于分析网页上的每一个超链接,并根据超链接链到其他网页中的超链接,网络蜘蛛构造设计如此图2所示:.1.3索引器构造设计搜索引擎对网络蜘蛛抓取到的网页信息进行整理,这一经过称为开创建立索引。索引器构造设计如此图3所示:1.4检索器构造设计搜索引擎每时每刻都要收到来自大量用户的几乎是同时发出的查询,它根据每个用户的要求检查自个的索引,在极短时间内找到用户需要的资料。检索器构造设计如此图4所示:2网络蜘蛛的实现2.1网络蜘蛛爬行策略实现算法互联网能够看成一个超级大的图,网络蜘蛛的遍历网页算法采用图的宽度优先遍历(BFS)算法,其爬行策略实现算法如下:.1〕将入口URL入队至待访问URL的队列中去。2〕URL从待访问URL队列出队,使用开源解析库Parser对给出的入口URL进行解析,判定抓取到的URL能否在已访问URL集合中,若不在,则将URL存储在待访问URL的队列中去〔入队〕,若存在则什么也不做。3〕使用Parser对出队的URL进行解析,解析该URL的标题、内容、本文关键词语、开创建立时间等信息。4〕使用Lucene为Parser解析到的网页信息开创建立索引。5〕出队的URL添加至已访问URL集合中去。6〕重复〔2〕~〔5〕的经过。2.2网络蜘蛛的详细实现〔1〕数据构造:队列和散列表〔哈希表〕首先要构建用于存储抓取到的URL待访问的URL队列,在构建队列时需要考虑下面两方面因素:1〕队列中将要存储的元素个数非常之多并且数量无法确定;2〕在队列的队头和队尾处经常进行删除和添加操作。针对以上两点,使用java集合类LinkedList的链式存储构造来实现未访问URL队列。这个未访问URL队列主要用来存储爬虫抓取到的URL,通过一系列的出队入队操作实现对网页的宽度优先遍历。〔2〕要构建散列表。在根据未访问URL队列对URL进行抓取和解析的时候,还需要一个数据构造散列表来存储已经访问过的URL来避免对同一个URL的重复抓取和解析。在URL从未访问队列出队以后,首先,判定一下,它有没有在这个数据构造中,只要当该URL不在这个已访问URL集合中时才对其进行其他操作。否则,将该URL丢弃。这个数据构造需要具有下面两个特点:1〕构造中存储的URL不能够重复。2〕由于URL数量诸多,考虑到查找性能问题,需要该构造能够快速地查找。针对以上两点,采用Java集合类HashSet来实现存储已访问URL的散列表集合类。这个已访问URL集合主要是记录网络蜘蛛已经访问过的URL,在网络蜘蛛访问一个从未访问URL队中出队的URL时,首先判定一下这个URL能否已经在已访问URL集合中存在,不存在的时候再进行访问,这样能够避免对同一URL屡次不必要的访问。〔3〕网络蜘蛛抓取网页Parser是用一个纯java写的解析库,它不依靠于其它的java库文件,主要用于改造或提取。它能超高速解析,而且不会出错。使用Parser的链接提取功能提取网页中的链接的经过如下:1〕开创建立过滤器,过滤a标签中的URL:NodeFilterfilter=newTagNameFilter(a2〕开创建立解析器:Parserparser=newParser();3〕使用parser.setURL(url)和setEncoding()设置需要解析的URL和编码方式;4〕获取解析的结果:NodeListlist=parser.extractAllNodesThatMatch(filter);5〕遍历得到的解析结果;6〕在将解析到的URL存入未访问URL队列之前需要对其进行一些检查,把一些错误的链接或者是无法访问的链接过滤掉。3索引器的实现使用Lucene开创建立索引,Lucene是一个开放源代码的全文检索引擎工具包[6-8],即它不是一个完好的全文检索引擎,而是一个全文检索引擎的架构,提供了完好的查询引擎和索引引擎。Lucene提供了五个基础的类,对文档进行索引,以下为使用Lucene为Doc实例开创建立索引的相关操作。1〕开创建立分词器,这里使用的是Lucene默认的分词器;2〕设置IndexWriter类的相关配置:3〕设置索引的保存途径:4〕开创建立Lucene索引器:IndexWriterwriter=newIndexWriter(dir,iwc);5〕开创建立Document对象:Documentdoc=newDocu-ment();6〕为Document对象添加Field域;7〕添加Document至索引器中去:writer.addDocument(doc);8〕关闭索引器:writer.close();4检索器的实现.4.1使用Lucene执行检索1〕开创建立IndexReader对象读取索引器开创建立的索引;2〕开创建立分词器Analyzer对用户输入的字符串进行分词处理;3〕使用IndexReader对象开创建立检索器IndexSearcher;4〕使用分词器Analyzer开创建立QueryParser对象,解析用户输入的检索字符串;5〕获得解析检索字符串返回的Query对象;6〕使用Query对象执行检索将默认排序结果放置到TopDocs结果集;7〕得到检索结果总数量:hitsSize=results.totalHits;。4.2高亮显示检索结果1〕设置高亮显示标签2〕开创建立高亮显示对象:Highlighterhighlighter=newHighlighter(formatter,scorer);3〕设置高亮显示附近字符串大小:Fragmenterfragmenter=newSimpleFragmenter(200);4〕设置高亮:highlighter.setTextFragmenter(fragmenter);5检索测试.用户能够在检索器的文本框内输入需要检索的本文关键词语,点击搜索按钮,检索器将自动显示与本文关键词语相关的检索结果,搜索上海车展检索器返回检索结果效果。如此图5所示:.6总结搜索引擎是一种信息检索服务系统,它能够帮助用户在互联网上快速地查找对自个有用的信息。通过网络爬虫抓取信息,然后在通过一定的技术对网页信息进行提取、处理,将抓取到的信息存放在索引数据库中,通过一些查询接口实现信息检索。本搜素引擎的设计与实现是基于全文搜索进行的,设计了网络蜘蛛、索引器和检索器的构造,并利用Java语言进行了搜素引擎的实现,通过检索实验,检索速度=200ms,该搜索引擎是一个比拟高效的检索工具,但是系统实现的网络蜘蛛并非真正意义上的全自动,而是必须给定网页入口并告诉网络蜘蛛要抓多少张网页,它才能正常抓取网页,同时检索策略有待进一步改良,以便进一步提升检索速度。以下为参考文献[1]孙宏.搜索引擎技术与发展综述[J].计算机光盘软件与应用,2020〔14〕:10-15.[2]李国芳.全文搜索引擎快速搭建的设计与实现[J].计算机与当代化,2020〔11〕:18-21.[3]克罗夫特(美).搜索引擎:信息检索实践[M].北京:机械工业出版社,2018:69-83.[4]李浩.网络蜘蛛的研究与实现[J].科技信息,2020〔26〕:18-23.[5]陈建峡.基于PageRank

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论