已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
搜索引擎与网络爬虫的浅析及实现本科毕业论文题 目:搜索引擎与网络爬虫的浅析及实现姓 名: 学 院: 软件学院系: 软件工程专 业: 软件工程年 级: 学 号: 指导教师: 职称: 年 月摘要随着互联网的发展, 网上的资源越来越丰富, 如何有效利用网上的资源, 是当今信息时代的主题。搜索引擎的出现,就为如何在互联网的海洋中有效地搜索用价值的信息提供了一个很好的解决方法。本文将对互联网搜索引擎的系统结构进行详细的剖析,然后分别对搜索引擎的主要组成部分网络爬虫,索引数据库, 服务器端进行实例化分析。为了达到让读者了解搜索引擎及网络爬虫的原理,笔者基于java平台上实现了一个简单的新闻搜索引擎,以其后几章里将以该引擎为例,阐明一般搜索引擎的基本原理和实现方法。新闻搜索引擎的原理简单说来是从指定的互联网页面上抓取超链接, 然后对其进行解析、分类,并把结果(新闻条目)建立索引后加入数据库。用户从浏览器向Web服务器发出搜索请求,服务器端接到请求后,从索引数据库中搜索出匹配的新闻,通过web响应返回给客户端,并显示在用户浏览器上。关键字 互联网 信息 搜索 网络爬虫 索引 服务器AbstractWith the development of the Internet, the resource on the Internet becomes huge and vast. How to utilize the resource efficiently, is the exciting topic nowdays. The come out of the Search Engine, provides some helpful solutions to this problem. This thesis begins with analyzing the structure of the Search Engine, and then states the details of the components which consist of the Search Engine. That is, Spider, Index Database and Web Server.In order to make the audiences understand clearly, I implement a News Search Engine on the Java Platform. I will analyze the principle of Search Engine with this instance.The principle of the News Search engine is simply to acquire the hyperlinks on the web page by the Spider. Then the collection of hyperlinks will be parsed, classified, indexed and stored in the Index Database. While receiving the request from the Client (usually the Internet Explorer), the Search Engine searches for the information in the Database immediately, then responses the result to the Client by Http message, showed on the Internet Explorer.Key words Internet, Search Engine, Spider, Index, Web Server.目录摘要2第一章 搜索引擎简介71.1搜索引擎的发展历史71.2搜索引擎的实现原理71.2.1搜索引擎的基本结构71.2.2网络爬虫91.2.3索引数据库91.2.4Web服务器91.3小结9第二章网络爬虫原理及设计102.1网络爬虫的概述及其工作原理102.2网络爬虫的搜索策略122.3构造网络爬虫132.3.1解析HTML132.3.2 HTMLPage.open()方法142.3.3 Vector类152.3.4 Iterator接口152.3.5 com.heaton.bot.Link类162.3.6利用Searcher类扫描网页162.4小结17第三章lucene下的索引和搜索173.1什么是Lucene173.2 Lucene的原理分析183.3.Lucene的中文切分词机制183.4 索引数据库的实现193.4.1生成索引数据库文件的IndexWriter类193.4.2 AddNews(String url, String title)方法193.5 小结20第四章实验设计与结果演示224.1 新闻搜索引擎程序结构224.2 新闻搜索引擎服务器端234.3客户端274.4结果演示27第五章 搜索引擎策略295.1概述295.2第四代搜索引擎搜索策略305.2.1 Guide words305.2.2网页评级305.3 搜索引擎未来展望31鸣谢32参考文献33ContentsAbstract2Chapter1 Introduce to Search Engine71.1 History of Search Engine71.2 How to implement a Search Engine71.2.1 Structure of Search Engine71.2.2 Spider91.2.3 Index Database91.2.4 Web Server91.3 Summary9Chapter2Principle and Design of Spider102.1 Introduce to Spider102.2 Search Strategy122.3 Construct a Spider132.3.1 Parse HTML132.3.2 HTMLPage.open()142.3.3 Vector152.3.4 Iterator152.3.5 com.heaton.bot.Link162.3.6 Scan the HTML by Searcher Class162.4 Summary17Chapter3Index and Search base on Lucene173.1 What is Lucene173.2 Principle of Lucene183.3. Chinese Characters analysis in Lucene183.4 Implement Index Database193.4.1 IndexWriter193.4.2 AddNews(String url, String title)193.5 Summary20Chapter4News Search Engine Designing and Performance224.1 Structure of the News Search Engine224.2 Server234.3 Client274.4 Performance27Chapter5 New Search Strategy295.1 Introduce to Search Strategy295.2 The Fouth Generation Search Strategy305.2.1 Guide words305.2.2 Evaluate the Website305.3 Future of Search Engine31Acknowledgements32Reference33第一章 搜索引擎简介1.1搜索引擎的发展历史在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。随着WWW的发展,搜索引擎发出闪耀的光芒。搜索引擎自出现以来,经历了三代的发展1:表11 搜索引擎发展的三个阶段出现时间建立索引数目速度使用技术第一代1994年少于1,000,000个慢Information Retrieval、网络、数据库等第二代1996年约50,000,000 个较快Information Retrieval、网络、数据库、分布式等第三代2000年约200,000,000个极快Information Retrieval、网络、数据库、分布式等 1.2搜索引擎的实现原理1.21搜索引擎的基本结构搜索引擎是通过对信息建立索引数据库,然后根据用户的查询请求,按照一定算法在数据库中查询找到匹配的信息并返回给用户。为了保证用户查找信息的精度和新鲜度,一个强大的搜索引擎需要建立一个庞大的索引数据库,从而保证信息的精度和覆盖的广度,并要及时更新以保证信息的及时性。一般搜索引擎的宏观结构如下图2:图11 搜索引擎的宏观结构 微观结构如下图2:Web PagesSpiderCreate IndexSearch from DB Web ServerIndex DatabaseIEIESpider 图12 搜索引擎的微观结构1.2.2网络爬虫网络爬虫是一个WEB页面扫描程序。它通过扫描WEB页面, 抓取其内的超链接, 并将其加入扫描等待队列。网络爬虫扫描web页面的策略一般分为:广度优先、深度优先和IP地址三种。设计时可根据需要制定扫描策略。1.2.3索引数据库网络爬虫扫描后得到的WEB页面放在临时数据库中,为了提高检索效率,需要对数据库建立索引。用户输入搜索条件后搜索程序在索引数据库中检索然后返回符合查询要求的信息的索引,按索引找到超链接按一定次序返回给用户。1.2.4Web服务器Web服务器是用户与索引数据库之间的桥梁。用户在浏览器中输入查询关键字,Web服务器根据查询关键字在索引数据库中进行查询、排列然后返回给客户端。1.3小结以上对基于因特网的搜索引擎结构进行了分析,下面在这些研究的基础上,以笔者设计的一个简单搜索引擎News Search Engine为例, 对上述搜索引擎的三个组成部分进详细分析。在这个新闻搜索引擎中,笔者运用了Java技术和其它一些Open Source工具(bot 开发包3 和 Lucene包4)。第二章网络爬虫原理及设计2.1网络爬虫的概述及其工作原理网络爬虫,是一种专业的抓取WEB页面的程序,也叫网络机器人,是搜索引擎的重要组成部分。网络爬虫从一个或多个Web页面上开始执行,获得该网上上的超链接,将这些超链接放入队列,然后通过这些超链接再访问下一级页面,再抓取其页面上的超链接放入队列,如此不断地循环,直到没有满足条件的新超链接为止。理论上它可以扫描Internet上的所有页面4。被网络爬虫抓取的网页超链接会被储存在扫描等待队列中,然后用一定的算法将它们排序、分析、过滤,以便之后的下一级扫描。下面是网络爬虫的工作流程图把URL加入等待队列Spider程序工作完成等待队列中是否有URL?否下载从等待队列中得到的网页,并将他送入运行队列中。是这个网页包含其他超级连接吗?将这一网页送入完成队列并继续查看网页上的下一个超连接是否为指向Web的连接?报告其他类型连接连接是否与网页所在主机不同且只处理本地连接?报告外部连接报告网页连接将连接加入等候队列否是否是否是 图21网络爬虫的工作流程图2.2网络爬虫的搜索策略网络爬虫沿超链接访问并抓取网页的时候,一般有IP地址搜索、深度优先搜索和广度优先搜索三种策略5。IP地址搜索先赋予爬虫一个起始的IP地址, 然后根据IP地址递增的方式搜索本IP地址段后的每一个WWW地址中的文档,它完全不考虑各文档中指向其它Web 站点的超级链接地址。优点是搜索全面,能够发现那些没被其它文档引用的新文档的信息源;缺点是不适合大规模搜索。深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。优点是能遍历一个Web 站点或深层嵌套的文档集合;缺点是因为Web结构相当深,,有可能造成一旦进去,再也出不来的情况发生。广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低6。广度优先搜索策略 在广度优先搜索中,先搜索完一个Web 页面中所有的超级链接,然后再继续搜索下一层, 直到底层为止。例如,一个HTML 文件中有三个超链,选择其中之一并处理相应的HTML文件,然后不再选择第二个HTML文件中的任何超链, 而是返回并选择第二个超链,处理相应的HTML文件,再返回,选择第三个超链并处理相应的HTML文件。一旦一层上的所有超链都己被选择过,就可以开始在刚才处理过的HIML 文件中搜索其余的超链。这就保证了对浅层的首先处理。当遇到一个无穷尽的深层分支时,不会导致陷进WWW 中的深层文档中出现出不来的情况发生。广度优先搜索策略还有一个优点,即它能在两个HTML文件之间找到最短路径。广度优先搜索策略通常是实现爬虫的最佳策略,因为它容易实现,而且具备大多数期望的功能。但是如果要遍历一个指定的站点或者深层嵌套的HTML文件集,用宽度优先搜索策略则需要花费比较长的时间才能到达深层的HTML文件。综合考虑以上几种策略和国内信息导航系统搜索信息的特点,国内一般采用以广度优先搜索策略为主、线性搜索策略为辅的搜索策略。2.3构造网络爬虫2.31解析HTML前面介绍了网络爬虫的基本原理和爬虫的搜索策略后,现在让我们来用Java语言来构造一个网络爬虫。首先,网络爬虫抓取的是网页上的超链接。一个HTML页面上包含有各种元素,那我们怎么从这些各种各样的元素中区分出哪些是文本,哪些是超链接,哪里是表单呢?这就是网络爬虫首先要实现的功能解析HTML。我们可以通过两种方法来解析HTML,第一,JAVA强大的功能提供我们解析HTML的类库,我们可以用Swing类来进行解析。另外,JAVA良好的封装性和继承性,让我们可以引用前人的成果,直接导入一个叫bot的开发包,利用其中的类来解析HTML6。Bot包是美国的一个叫Jeff Heaton的IEEE成员编写的一个基于Socket利用Http协议访问网络的开发工具包,包中提供了大量关于Spiders、Bots和Aggregators程序设计所需的类库。该包可以从/java/bot/updates.shtm 上获取,目前作者提供的最新版本为1.4。6Bot包中的有个HTMLPage类7。专门用于解析HTML页面。下面给出该类几种重要的方法。表21HTMLPage类中的方法方法名称功能描述addImage()添加图像链接getForms()获得所请求网页中的所有表单getHTTP()获得所使用的HTTP对象getImages()获得所请求网页中的所有图像getLinks()获得所有的超链接getURL()获得本次请求的URLHTMLPage()以一个给定的HTTP对象构造HTMLPage对象Open()检索并解析指定的URL资源Post()根据表单的Action属性发送表单的内容processPage()对该网页进行处理,如果我们需要进一步处理时,需要重写该方法 因此,我们可以用HTMLPage类的getLink方法获取超链接。我们创建一个名为“HTMLParse”的类,先引入必要的类。import java.util.Iterator;import java.util.Vector;import com.heaton.bot.HTMLPage;import com.heaton.bot.HTTP;import com.heaton.bot.Link;HTMLParse类的构造函数为 public HTMLParse(HTTP http) _http = http; 参数是上一步骤(下一节详述)扫描所得的网页,以HTTP的形式传进来并实例化HTMLParse类。然后用open()方法打开并读取该页面,此后,getLink方法获得的URL放进Vector类型的队列里。2.3.2 HTMLPage.open()方法 Open方法是用来打开一个页面,并读取其中的内容。Public void open(URL url1, Callback, callback1),其中参数URL,是要被读取的页面的URL,参数Callback如果设为NULL的时候,HTMLPage类里的其他方法(如getLink(),getImage()等)可以被调用来取得其中的链接和图片等。在这里我们用getURL()获得要抓取页面的URL,作为参数传给open方法,_page.open(_http.getURL(), null);callback参数设为null,然后调用下面的方法逐步解析页面。2.3.3 Vector类Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作7。在实际操作中,我们用Vector类来创建一个队列,用来管理getLink()方法抓取的超链接。Vector _links = _page.getLinks();2.3.4 Iterator接口public interface Iterator是一个对集合进行迭代的迭代器,由于我们上面用了Vector类创建了一个对象数组,于是我们可以用iterator来对其中的内容进行一条一条地取读。Iterator有三个主要方法:表22 Iterator主要方法booleanhasNext() 如果仍有元素可以迭代,则返回 true。Enext() 返回迭代的下一个元素。voidremove() 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。于是,我们先实例化一个Iterater接口:Iterator _it = _links.iterator();再用hasNext()判断Vecotor是否还有下一个元素,有则执行下一步操作(在这里只列出主要的代码),while (_it.hasNext() Link _link = (Link) _it.next();用iterator.next()方法读出下一个元素,在这里是一个在等待队列中的超链接。用Link类型强制转型,然后存储存在Link类型的变量中。2.3.5 com.heaton.bot.Link类这是一个十分简单的用来放网页超链接的类,它里面有getHREF()和getPrompt()两个方法用以返回该超链接的属性。在新闻搜索引擎的实例中,我们用String _herf = input(_link.getHREF().trim();来获得新闻的超链接并存储在String类型的 _herf变量中。用String _title = input(_link.getPrompt().trim();获取新闻的标题,并存储在String类型的 _title变量中。2.36利用Searcher类扫描网页扫描网页是一项简单的工作,利用在BOT包的Spider类,可实现自动扫描网页的功能。新建Searcher类之前,先import com.heaton.bot.Spider。然后创建Searcher类的构造函数,Searcher _searcher = new Searcher();在Searcher里实例化一个Spider, Spider _spider= new Spider(_searcher, http:/localhost:8080/myjsp/News.jsp new HTTPSocket(), 100);参数中的URL是要扫描的页面,100扫描获得超链接的最大数目8。此外,Searcher类还将扫描得到的页面以参数的形式传给HTML解析器,即2.3.1里的HTMLParse类。 public void processPage(HTTP http) new HTMLParse(http).start();2.4小结在本章中,首先介绍了网络爬虫的基本概念,然后具体分析了网络爬虫程序的结构和功能。本新闻搜索引擎所用的网络爬虫,结合扫描网页和解释HTML两方面的功能,这两方面的功能,主要由第三方开发包Bot(由Jeff Heaton提供的开发包)提供类库。事实上,本人在设计HTMLParse类时,在解析HTML的同时,将得到的结果(超链接,文本等)添加到索引数据库中。关于索引数据库的使用,将在下一章介结。第三章lucene下的索引和搜索3.1什么是LuceneLucene是Apache的开源项目其中一个分支。它是一个用Java写的全文索引引擎工具包,导入程序后可实现全文索引/检索功能8。Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。Lucene的发展历程9:早先发布在作者自己的,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:/lucene/3.2 Lucene的原理分析本新闻搜索系统利用Lucene生成一个索引文件,通过在索引文件里找查得到匹配的记录。总体上看:可以先把Lucene当成一个支持全文索引的数据库系统。数据库索引能够大大提高查询的速度,就像通常书籍后面常常附关键词索引表(比如:北京:12, 34页,上海:3,77页),它能够帮助读者比较快地找到相关内容的页码的原理一样。通过在生成的索引文件里找查数据,比在原始网页上找查数据要快多了。而索引之所以效率高,另外一个原因是它是排好序的。而通过Lucence的API接口,就可以对数据进行排序和建立索引。Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表=记录=字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构和接口中。3.3.Lucene的中文切分词机制对于中文来说,全文索引首先还要解决一个语言分析的问题,对于英文来说,语句中单词之间是天然通过空格分开的,但亚洲语言的中日韩文语句中的字是一个字挨一个,所有,首先要把语句中按“词”进行索引的话,这个词如何切分出来就是一个很大的问题。在本新闻搜索系统里运用了lucence开发包下.ChineseAnalyzer类,该类专门用于中文切分词机制9。利用cn.ChineseAnalyzer的解决办法是:将单词按照2元语法(bigram)方式切分出来,比如:体育新闻 = 体育 育新 新闻。这样,在查询的时候,无论是查询体育 还是查询新闻,都同样能够正确地映射到相应的索引中。自动切分的最大优点是没有词表维护成本,实现简单,缺点是索引效率低。3.4 索引数据库的实现3.4.1生成索引数据库文件的IndexWriter类IndexWriter类是用来建立并维护一个索引的类。public IndexWriter(Directory d, Analyzer a, Boolean create)第一个参数d指定了该索引文件将在d中生成,本实例中以“c:Newsindex”为路径创建索引文件;第二个参数a指定了以什么切词法分析,而新闻搜索引擎中以ChineseAnalyzer中文切词分析法来分析;第三个参数指定是否新建一个目录,如果true则新创建一个文件,将原有的索引覆盖。当索引文件Index刚被创建时,该文件还空的,这时我们需要向它里面一条条地将内容加进去。3.4.2 AddNews(String url, String title)方法向索引文件添加内容时,我们需要用到AddNews方法,这是一个笔者自己定义的方法。两个参数分别是新闻的超链接和新闻的标题,即在HTMLParse类里解析得到的结果。在这里,我们以记录为单位,向索引文件中写入内容。要建立一条条的记录,我们要用到org.apache.lucene.document类,一个实例化的Document类就是一条记录,它由一系列字段组成,每个字段必须有字段名和字段值。 Document _doc = new Document(); _doc.add(Field.Text(title, title); _doc.add(Field.UnIndexed(url, url);然后再调用IndexWriter的方法_writer.addDocument(_doc);将一条记录写进Index文件中。用Document为单位一条条记录地写进索引文件的好处是当搜索命中的时候,它会以整条记录为单位返回。3.5 小结整个建立索引的过程如下图所示:Index空文件Document类 (空记录)新闻超链接新闻标题超链接 标题 Index 文件 其它新闻记录(1)新建一个空的索引文件(2)新建一个空的新闻记录(3)将新闻的属性添加到新闻记录的字段中(4)将新闻记录添加进索引文件中图31 建立索引过程当完成了添加所有新闻记录的操作后,索引文件会将所有记录按一定算法排序,于是该文件里面存有已排序的记录,当服务器端接收到用户的查询条件时,根据关键字来到文件里搜索,然后将匹配的结果以记录的形式返回给用户。第四章实验设计与结果演示4.1 新闻搜索引擎程序结构本新闻搜索引擎用了Tomcat作为服务器软件。搜索引擎的服务器端主要利用Java Servlet技术实现,服务器端从客户端接受到用户通过GET方法提交的查询关键字,服务器端的Servlet容器分析接收到的参数,然后在上一节所述的索引文件(c:Newsindex”)中进行搜索。得到匹配结果后,以HTTP消息的方式返回至客户端。新闻搜索引擎结构设计图例: 互联网索引数据库NewsServer网络爬虫新闻搜索引擎图41新闻搜索引擎结构新闻搜索引擎类图:SearcherIndexHTMLParseNewsResultNewsServer图42新闻搜索引擎类图4.2 新闻搜索引擎服务器端服务器端用以接收用户的请求,并作出响应,即根据用户的查询条件,在索引文件中搜索,并将匹配的结果返回给用户。在这里,用了doGet(HttpServletRequest request, HttpServletResponse response)接受查询请求并响应,最后以HTTP消息的形式返回结果给用户。/厦门大学软件学院 04级 学号/News Searching Engine 1.0 2008-5-23package newsserver;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.lucene.analysis.Analyzer;import .ChineseAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.queryParser.QueryParser;import org.apache.lucene.search.Hits;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Query;public class Results extends HttpServlet private static final String CONTENT_TYPE = text/html; charset=GBK; /Initialize global variables public void init() throws ServletException /Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String QC = request.getParameter(QueryContent); if (QC = null) QC = ; else QC = input(QC); response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); try Search(QC, out); catch (Exception ex) System.out.println(ex.getMessage(); public void Search(String qc, PrintWriter out) throws Exception / 从索引目录创建索引 IndexSearcher _searcher = new IndexSearcher(c:newsindex); / 创建标准分析器 Analyzer analyzer = new ChineseAnalyzer(); / 查询条件 String line = qc; / Query是一个抽象类 Query query = QueryParser.parse(line, title, analyzer); out.println(); out.println(搜索结果); out.println(); out.println( + + 新闻搜索引擎: + + + ); out.println(搜索关键字: + query.toString(title) + ); Hits hits = _searcher.search(query); out.println( 总共找到 + hits.length() + 条新闻); final int HITS_PER_PAGE = 10; for (int start = 0; start hits.length(); start += HITS_PER_PAGE) int end = Math.min(hits.length(), start + HITS_PER_PAGE); for (int i = start; i end; i+) Document doc = hits.doc(i); String url = doc.get(url); if (url != null) out.println( (i + 1) + + replace(doc.get(title), qc) + ); else System.out.println(没有找到!); out.println(); _searcher.close(); ; public String input(String str) String temp = null; if (str != null) try temp = new String(str.getBytes(ISO8859_1); catch (Exception e) return temp; public String replace(String title, String keyword) return title.replaceAll(keyword, + keyword + ); ; /Clean up resources public void destroy() 图43 Result类代码4.3客户端用户界面采用简洁而友好的排版,像GOOGLE和百度等专业搜索引擎一样。客户端的设计很简单,可用纯HTML或JSP完成,而本搜索引擎采用了后者,是因为后者比HTML与TOMCAT服务器有无间的配合。用户可在text表单里输入查询关键字,然后按下按钮,将表单的内容通过get方式传给servlet.查询界面截图如下图44 查询界面示图4.4结果演示用户查询页面:图45 查询页面示图之一用户输入查询条件,如“体育”“娱乐”“科技”等:图46 查询页面示图之二返回索搜结果:图47 查询结果页面示图第五章 搜索引擎策略5.1概述当今时代,信息越来越多元化,信息更新得越来越快,要及时地更新以得到互联网上新而全面的信息是不太可能的。因此,开发一个分类精确细致、数据深入且全面、能及时更新的主题搜索引擎具有迫切的需要。主题搜索采用了特征提取等人工智能化策略,比它的前几代搜索引擎更加有效和准确,因而主题搜索引擎也被称为第四代搜索引擎10。5.2第四代搜索引擎搜索策略5.2.1Guide wordsGuider words10是一组关键词,它们引导搜索引擎按照一定次序搜索整个互联网,让搜索引擎以更短的时间得到更全面的相关的信息。通过设置guide words,所有文本中含有某一Guide words的网页都会被赋上较高的权值,搜索时会优先考虑。搜索引擎在获得网页URL的时候也是按照网页由高到低的权值优先获取的。5.2.2网页评级网页评级10的概念,建立在链接的重要性的基础上,简单地说,有两层含义:第一,如果一个网页被其它网页引用(即其它网页上有一个指向该网页的链接),说明该网页对其它网页有用,该网页得分。其次,得分的高低取决于引用它的网页的重要性。越是被重要的网页收录(即这些重要网页上有指向该网页的链接),说明该网站提供的信息越重要,得分越高。可以看到,在确定网站评级时,又用到了网站评级,所以这是一个递归算法。一个网页被越多重要网页收录,获得的网页评级越高,重要性也越高,在被搜索时,越有可能占据搜索结果前面的位置。当然,网页评级不是排名的唯一因素,但无疑是一个相当重要的因素。一个网页的评级分数,可以很粗略地看到。如果在浏览器上设置 Google 工具条,就可以看到分为十级的网页评级。本章介绍了面向主题的搜索策略,并作了详细阐述。虽然在新闻搜索中并没有应用到搜索策略,但是对于WWW搜索引擎来说,搜索策略是极其重要的。他直接关系到搜索的质量以及匹配度等性能。5.3 搜索引擎未来展望我们上面所述的搜索引擎,无论是新闻搜索还是普通的页面搜索,都是通过一定的程序对搜索内容进行索引,然后通过算法再对其进行查找,但这样搜索到的结果是有限的,有时候甚至搜索不到我们需要的答案。在这些情况下,百度公司推出了智慧性搜索引擎百度知道,把搜索推向了社区化与互动化。当你有问题的时候,如果使用其它搜索引擎找不到答案,可以把你的问题发到知道中,这样看到的人就会给你做出解答,直到找到正确答案为止。这样使得搜索变成了一个互动的平台,不再只是单纯的机器算法,而把人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 眼镜架制作工安全知识竞赛测试考核试卷含答案
- 电子电路逻辑布线工操作安全测试考核试卷含答案
- 钨钼粉末制造工岗前安全文明考核试卷含答案
- 钢丝制品精整工安全理论知识考核试卷含答案
- 刨花板铺装工岗前安全意识考核试卷含答案
- 广东省广州市2020-2021学年上学期七年级期末生物试题(含答案)
- 湖南省长沙市2025-2026学年高一语文上学期11月期中测试含解析
- 智能功率模块(IPM)全球前27强生产商排名及市场份额(by QYResearch)
- 2026年水利系统遥感监测应用知识竞赛题
- 2026年动火作业分级审批与防火防爆措施落实要点测试
- 2026四川德阳市什邡市教育和体育局选调高(职)中教师13人备考题库附答案详解
- 2026江西赣州市安远县东江水务集团有限公司第一批人员招聘10人备考题库含答案详解(b卷)
- 企业一般固废管理制度
- 2026年花样滑冰赛事品牌建设与营销创新案例研究
- 2026山东青岛海关缉私局警务辅助人员招聘10人考试参考题库及答案解析
- 2026年考研数学一模拟单套试卷(含解析)
- 旅馆防偷拍工作制度
- 2026贵州贵阳市信昌融合实业发展有限公司招聘16人笔试备考试题及答案解析
- 2026年北京市丰台区高三一模英语试卷(含答案)
- 混凝土机械建筑施工机械
- 情景对话公开课-课件
评论
0/150
提交评论