Internet学习记录:搜索引擎

搜索引擎发展史

  • 现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学生Alan Emtage发明的Archie——以文件名查找文件的系统
  • 美国内华达System Computing Services大学于1993年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了索引文件外,已能检索网页
  • 世界上第一个用于监测互联网发展规模的“机器人”程序是Matthew Gray开发的World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名
  • Martin Koster于1993年10月创建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“机器人” 程序,而是靠网站主动提交信息来建立自己的链 接索引,类似于现在我们熟知的Yahoo
  • 在Matthew Gray的Wanderer基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些改进。其设想是,既然所有网页都可能有连向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,其中以JumpStation、The World Wide Web Worm(Goto的前身,也就是 今 天 Overture), 和 Repository-Based Software Engineering (RBSE) spider最负盛名
  • JumpStation和WWW Worm只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。而RBSE是第一个在搜索结果排列中引入关键字串匹配程度概念的引擎
  • 最早现代意义上的搜索引擎出现于1994年7月。当时Michael Mauldin将John Leavitt的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的Lycos。同年4月,斯坦福(Stanford)大学的两名博士生, David Filo和美籍华人杨致远(Gerry Yang)共同 创办了超级目录索引Yahoo,并成功地使搜索引擎的概念深入人心。从此搜索引擎进入了高速发展时期。目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量也与从前不可同日而语。比如Google的索引数据库和网页缓存大小是以Terabyte来衡量的
  • 随着互联网规模的急剧膨胀,一家搜索引擎光靠自己单打独斗已无法适应目前的市场状况,因此现在搜索引擎之间开始出现了分工协作,并有了专业的搜索引擎技术和搜索数据库服务提供商。象国外的Inktomi(已被Yahoo收购),它本身除了直接面向用户的搜索引擎,还向包括Overture(原GoTo,已被Yahoo收购)、LookSmart、MSN、HotBot等在内的其他搜索引擎提供全文网 页搜索服务。国内的百度也属于这一类,搜狐和新浪用的就是它的技术。因此从这个意义上说, 它们是搜索引擎的搜索引擎

搜索引擎分类

搜索引擎按其工作方式主要可分为三种, 分别是:

  • 全文搜索引擎(Full Text Search Engine)
  • 目录索引类搜索引擎(Search Index/Directory)
  • 元搜索引擎(Meta Search Engine)

全文搜索引擎

  • 全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等, 国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索 与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎
  • 从搜索结果来源的角度,全文搜索引擎又可细分为两种
  • 一种是拥有自己的检索程序(Indexer), 俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用
  • 另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果

目录索引

目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词(Keywords)查询,仅 靠分类目录也可找到需要的信息。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo 雅虎。其他著名的还有Open Directory Project(DMOZ)、LookSmart、About等。国内的搜狐、新浪分类目录搜索也都属于这一类。

元搜索引擎

元搜索引擎在接受用户查询请求时,同时 在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表), 中文元搜索引擎中具代表性的有搜星搜索引擎。在搜索结果排列方面,有的直接按来源引擎排列搜索结果,如Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。

其他非主流形式

  • 集合式搜索引擎:如HotBot在2002年底推出的引擎。该引擎类似META搜索引擎,但区别在于不是同时调用多个引擎进行搜索,而是由用户从提供的4个引擎当中选择,因此叫它“集合式”搜索引擎更确切些
  • 门户搜索引擎:如AOL Search、MSN Search等虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,其搜索结果完全来自其他引擎
  • 免费链接列表(Free For All Links,简称FFA): 这类网站一般只简单地滚动排列链接条目,少部分有简单的分类目录,不过规模比起Yahoo等目录索引来要小得多

搜索引擎三段式工作流程

搜集
服务
整理
  • 搜集
    • 批量搜集,增量式搜集;搜集目标,搜集策略
  • 预处理
    • 关键词提取;重复网页消除;链接分析;索引
  • 服务
    • 查询方式和匹配;结果排序;文档摘要
      工作流程

搜索引擎基本工作原理——全文搜索引擎

  • 全文搜索引擎从网站提取信息建立网页数据库
  • 搜索引擎的自动信息搜集功能分两种。
    • 一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库
      • “蜘蛛”程序的基本算法
        蜘蛛程序基本算法
      • “蜘蛛”程序的基本流程
        基本流程
    • 另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
  • 关键词提取(单词索引)
    单词索引
  • 关键词提取(单词加位置索引—短语检索)
    关键字提取
  • 关键词提取(增加元数据索引)
    关键字提取
  • 当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。

PageRank算法

  • PageRank是基于这样一个理论:若B网页设置有连接A网页的链接(B为A的导入链接时),说明B认 为A有链接价值,是一个“重要”的网页。当B网页级别(重要性)比较高时,则A网页可从B网页这个导入链接分得一定的级别(重要性),并平均分配给A网页上的导出链接。
  • 一般说来,PageRank是由一个网站的导入链接的 数量和这些链接的级别(重要性)所决定的。
  • PageRank的计算方法:PageRank (A) = (1-d) + d(PageRank (T1)/C(T1)+ … + PageRank (Tn)/C(Tn))
    • 其中PageRank (A)表示给定页面A的PageRank得分;
    • d为阻尼因子,一般设为0.85;
    • PageRank (Ti)表示第i个指向A页的网站其本身的PageRank得分;C(Ti)表示该页面所拥有的导出链接数量;i=1, …,n
      计算方法
  • 写成矩阵形式如图
    矩阵形式
  • PageRank的计算方法
    • 由于矩阵A的列向量元素全部大于0,且和为1, 所以其最大特征值为1,可以采用幂法来迭代计算PageRank的值
    • 取一个随机向量v,然后计算如下的一系列单位向量 , , ,……这个序列几乎总是收敛于最大绝对值的特征值所对应的特征向量
    • 也可以利用QR分解的特征值算法,采用特征值为1所对应的特征向量作为每个页面的PageRank值
  • PageRank的直观解释
    • 假设Web上有一个随机浏览者,从一个任意给定的页面出发,从不执行“back”操作,按照页面上的链接前进,且选择本页面中任意一个链接的概率相等;由于可能存在随机跳跃到完全无关网页上,用d表示随机跳跃的概率
    • PageRank就是访问到页面A的概率,由于用户是趋向于浏览重要页面的,所以这个概率就反映了此页面的重要程度

搜索引擎基本工作原理——目录索引

  • 首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主观印象,决定是否接纳你的网站
  • 其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo! 这样的超级索引,登录更是困难
  • 在登录搜索引擎时,我们一般不用考虑网站的分类问题, 而登录目录索引时则必须将网站放在一个最合适的目录(Directory)
  • 最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权; 而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整
  • 目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)
  • 目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google 就借用Open Directory目录提供分类查询。而象 Yahoo! 这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如国内搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo

搜索策略

7 Stage Search Strategy:

  • Unpack your query
  • Phrase your query
  • Categorise your query
  • Match a tool to your query
  • Seek advice from a relevant person
  • Try again!
  • Evaluate your results

猜你喜欢

转载自blog.csdn.net/m0_49564079/article/details/115051425
今日推荐