《集体智慧编程》 第四章 搜索与排名 学习笔记

 一.搜索引擎介绍(来自维基百科)

搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。

(一)工作原理

搜索引擎的工作原理大致可以分为:
    1.搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛的自动搜索机器人程序来连上每一个网页上的超链接。机器人程序根据网页链到其中的超链接,就像日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超链接,机器人便可以遍历绝大部分网页。
    2.整理信息:搜索引擎整理信息的过程称为“创建索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。
    3.接受查询:用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这样通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。

整理信息及接受查询的过程,大量应用了文本信息检索技术,并根据网络超文本的特点,引入了更多的信息。

(二)分类

搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、垂直搜索引擎(Vertical Search Engine)和元搜索引擎(Meta Search Engine)。
全文搜索引擎
全文搜索引擎是名副其实的搜索引擎,欧美具代表性的有Google、Fast/AllTheWeb、 AltaVista、Inktomi、Teoma、WiseNut等,中国著名的有百度(Baidu)。它们都是通过从互联网上提取各个网站的信息(以网页文字为主)而创建的数据库。检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。
垂直搜索引擎
    垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次集成,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。例如,著名的百度图片搜索,互联统计网等都是针对某一领域而采用的垂直搜索引擎。
元搜索引擎
    元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。在搜索结果排列方面,有的直接按来源引擎排列搜索结果,如Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。

二.搜索引擎的组成

   为了运行本章中的示例,我们需要建立一个python的模块,并取名searchengine。

   其中包含两个类:

    一个用于检索网页和创建数据库;

    另一个则通过查询数据库进行全文搜索。

  首先新建一个名为searchengine.py的文件,并加入如下所示的crawler类和相应的方法签名,稍后我们将进一步完善该类。

原文地址:https://www.cnblogs.com/zzhzhao/p/5422390.html