搜索引擎论文

您当前的位置:学术堂 > 图书档案学论文 > 搜索引擎论文 >

基于因特网的搜索技术研究

来源:学术堂 作者:周老师
发布于:2015-09-17 共5678字
摘要

  信息时代的爆炸带来的是海量数据的发展,而搜索引擎带来了大浪淘沙的功能。 网民们通过搜索引擎都能够找到自己所需要的网页,并且通过搜索引擎还能快速找到帮助自己发展的位置。 而搜索引擎的发展从第一代简单的搜索,到当前复杂的数据挖掘,这其中的过程如下:

  第一代引擎出现在 1994 年。此代的搜索引起内容简单、搜索的范围不广,而且他们对于搜索到的资讯和时间要求都不很严格,导致了在搜索过程中,人们经常需要花费大量的耐心来进行检索,一般检索的时间要等到10 秒或者更长。 这一代的搜索使用的技术是在线搜索和IR 搜索技术。 根据数据统计,在当时在网络爬虫的数据大约每天 1500 次查询左右。

  第二代搜索是建立在第一代搜索的基础之上的。 由于第一代搜索的速度非常缓慢,第二代搜索在采用新技术---分布式响应方案的基础上,提升了相应规模和相应速度,通过建立起一个大型、分布式的索引数据库,每天直接对应各种用户的需求, 并能够快速的进行反馈。这种索引快速,导致了用户数量的不断增加和扩展。

  第三代搜索是在获取用户数据上的。 通过搜索引擎充分理解用户的需求,分析用户对当前数据的安排和内容,并直接响应出用户检索的内容,减少用户的查询时间和响应时间。 这种检索方式,需要充分利用用户与检索内容的交互,进行数据挖掘和数据分析,方能实现。

  我们当前正处于第二代和第三代搜索之间, 在减少响应速度和响应时间之间,着名的搜索公司 Google 和国内的百度有着自己的发展方向。

  在因特网领域,搜索引擎技术得到了广泛使用,然而他在国内外的含义却有所不同。 在美国搜索引擎通常指的是基于因特网的搜索引擎, 他们通过网络机器人程序收集上千万到几亿个网页, 并且每一个词都被搜索引擎索引,也就是我们说的全文检索。 在美国,他们通过网络机器人程序收集上千万到几亿个网页, 并且每一个词都被搜索引擎索引,也就是我们说的全文检索。着名的因特网搜索引擎包括 First Search、Google、HotBot 等。 在中国,搜索引擎通常指基于网站目录的搜索服务或是特定网站的搜索服务,本人这里研究的是基于因特网的搜索技术。

  一、搜索引擎的结构

  本文基于浏览器/服务器(Browse/Server)结构,使用JSP 作 为开发语言 ,J2EE 作 为开发工具 ,MySQL 作 为数据库,并在 Tomcat5.0 上进行发布。 由于 JAVA 语言具有可移植、安全性、解释执行、高性能、动态性,以及稍做修改后就具有跨平台性的优点, 使得本系统操作方便、快捷。

  1、网络蜘蛛概念

  网络蜘蛛即 Web Spider , 是一个很生动的名字。 假如我们把互联网比喻成一个蜘蛛网, 那么 Spider 就是在蜘蛛网上爬来爬去的蜘蛛。 通过网页的链接地址, 网络蜘蛛从网站某一个页面( 通常是首页) 开始, 通过读取网页的内容, 找到其他网页的链接地址, 然后再通过这些链接地址继续读取下一个网页。 这样一直循环下去, 直到把这一网站所有的网页都抓取完为止。 如果把整个互联网当成一个整体网站, 那么网络蜘蛛就是通过上述原理抓取 Interner 网上的所有网页。 对于搜索引擎来说, 要抓取互联网上所有的网页几乎是不可能的, 从目前公布的数据来看, 容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。 这其中的原因一方面是抓取技术的瓶颈, 无法遍历所有的网页, 有许多网页无法从其它网页的链接中找到; 另一方面是存储技术和处理技术的问题,如果按照每个页面的平均大小为 20K 计算(包含图片) , 100 亿网页的容量是 100 ×2000G 字节, 即使能够存储, 下载也存在问题 ( 按照一台机器每秒下载20K 计算, 需要 340 台机器不停的下载一年时间 , 才能把所有网页下载完毕) .

  2、网络蜘蛛的主要技术在抓取网页时, 网络蜘蛛一般有广度优先和深度优先两种策略。 广度优先其实就是一种并行处理, 网络蜘蛛通过起始网页中链接的所有网页, 选择其中的一个链接网页, 抓取在此网页中链接的所有网页,依次扩展,从而提高其抓取速度。 深度优先是指网络蜘蛛会从起始页开始, 一个链接一个链接地跟踪下去, 处理完这条线路之后再转入下一起始页, 继续跟踪链接。 这一方法的优点是网络蜘蛛在设计时比较容易。 相对于深度优先来说,广度优先要常用的多。

  目前一般的网站都希望有更多的访问者访问, 也就是需要有更多的搜索引擎找到访问的网页,也即是全面地抓取自己网站的网页。 为了让本网站的网页更全面地被抓取到, 网站管理员可以建立一个网站地图, 即 SiteMap. 网络蜘蛛通过 sitemap.htm 这个入口爬取这个网站的网页,抓取这些文件后,通过读取其中的文本信息,提取对搜索引擎的搜索准确性有重要帮助的文档信息, 同时, 这些信息也利用网络蜘蛛正确跟踪其它链接。 在搜索引擎中网络蜘蛛占有重要位置, 对搜索引擎的查全、查准都有影响, 决定了搜索引擎数据容量的大小。 同时,它的好坏还直接影响到搜索结果页中的死链接( 即链接所指向的网页已经不存在) 个数。

  二、搜索引擎总体设计

  现实环境中,有许多用户都有搜索服务的需求,例如很多网站都渴望有自己的站内搜索,这当然可以通过数据库来简单实现,但是在搜索服务器的负载量很大的情况下,数据库是无力应付的,而且数据库简单的基于字符串匹配的方式也显得过于呆板, 不能提供更多的高级搜索功能。 有的用户可能会选择自己组建开发团队来开发搜索引擎, 也可能会购买商用的搜索服务器软硬件来搭建搜索平台。 不过, 笔者认为普通用户也可以选择简单地购买搜索服务,不需要自己的开发团队,也不需要自己购买搜索服务软硬件。 也就是说, 用户只简单地提出搜索服务要求,其它一切都交给搜索服务提供商,软硬件和数据维护与更新都交给服务提供商。

  在上述情况下, 一个搜索引擎服务器提供商可以为若干个客户提供搜索,他们需要根据不同用户的需求去设计数据的索引策略和搜索策略,同时需要在自己的服务器主机上保存和维护不同用户的数据。 Solr1.3 优秀的多核心性能正好能满足这样的需求, 一方面多核心可以实现多库, 也就可以实现多个服务并行提供; 另一方面Solr1.3 的各个核心之间的独立性和可配置性 ,又使得搜索服务提供商可以根据不同用户的需求来进行个性化的配置。

相关内容推荐
相关标签:
返回:搜索引擎论文