zoukankan      html  css  js  c++  java
  • 搜索器robot技术

    凡上网者都用过搜索引擎,Altavista、Infoseek 、Hotbot、网络指南针、北大天网和华好网景的ChinaOK等等,它们的索引数据库涉及Internet上超过1亿的页面(Altavista和Hotbot),北大天网也收集了32万个www页面(国内),索引数据库的建立需要访问这些页面然后进行索引,如何做到对如此多的页面的访问,现在的搜索引擎无论是针对英文还是中文,都是采用网上机器人来实现网上搜索的(Yahoo!是个例外)。

    网上机器人  
    网上机器人(Robot)又被称作Spider、Worm或Random,核心目的是为获取在Internet上的信息。机器人利用主页中的超文本链接遍历Web,通过URL引用从一个HTML文档爬行到另一个HTML文档。网上机器人收集到的信息可有多种用途,如建立索引、HTML文件的验证、URL链接验证、获取更新信息、站点镜象等。

    机器人寻找WWW文档的算法  
    机器人要在网上爬行,因此需要建立一个URL列表来记录访问的轨迹。使用的是超文本,指向其它文档的URL是隐藏在文档中,需要从中分析提取URL;机器人一般都用于生成索引数据库。所有WWW的搜索程序都有类似步骤:
    1) 机器人从起始URL列表中取出URL并从网上读取其内容; 
    2) 从每一个文档中提取某些信息并放入索引数据库中;
    3) 从文档中提取指向其它文档的URL,并加入到URL列表中;
    4) 重复上述3个步骤,直到再没有新的URL发现或超出了某些限制(时间或磁盘空间);
    5) 给索引数据库加上查询接口,向网上用户发布。 
      算法有深度优先和广度优先两种基本的搜索策略。
    机器人以URL列表存取的方式决定搜索策略:
    1) 先进先出,则形成广度优先搜索。当起始列表包含有大量的Web服务器地址时,广度优先搜索将产生一个很好的初始结果,但很难深入到服务器中去。
    2) 先进后出,则形成深度优先搜索。这样能产生较好的文档分布,更容易发现文档的结构,即找到最大数目的交叉引用。 

    结果处理技术
    网页评选的主要因素
    搜索引擎应该能够找到与搜索要求相对应的站点,并按其相关程度将搜索结果排序。 这里的相关程度是指搜索关键字在文档中出现的频度,最高为1。当频度越高时,则认为该文档的相关程度越高。但由于目前的搜索引擎还不具备智能,除非你知道要查找的文档的标题,否则排列第一的结果未必是"最好"的结果。所以有些文档尽管相关程度高,但并不一定是用户更需要的文档。 
    搜索引擎是一个技术含量很高的电脑网络应用系统。它包括网络技术、数据库技术、检索技术、智能技术等等。在这一方面,由于国外的很多先进技术是建立在西文内核的基础上,所以我们还不能单纯引进照搬照抄。作为中文搜索引擎来讲,如何来发挥我们在中文处理上的长处,发展出有我们自己版权的核心技术,使我们在中文搜索引擎的竞争中占有有利地位。

    网页评选的四个主要因素:
    a. 网页数据库的大小,主要是人工浏览后定的。

    b.检索响应的时间,主要是程序里得出的。
    程序首先记下访问搜索引擎开始的时间,然后到取得记录后,又记下当时的时间,然后把两个时间减一下就得出了检索响应的时间。

    c.网页的质量划分主要也是由人工排定的。
    搜索引擎总是要将检索结果返回给用户,而结果显示的好坏直接影响到搜索引擎的使用效果。因此,结果显示的内容组织,如何排序,是否提供足够的相关信息(内码、文件大小、文件日期等),对用户对检索结果的判断具有很大的影响。 

    d.各个网站的相关度和以下因素有关:各个网站的相关度; 能够区分搜索结果的相关性(Pertinency)。
    l 人为的对网站设定一个相关系数,如Yahoo 1.0,Goyoyo 0.94等;
    l 链接,Summary中出现的关键词的次数;
    l 记录返回时间,即检索响应的时间

    结果处理
    (1) 按频次排定次序
    通常来说,如果一个页面包含了越多的关键词,其搜索目标的相关性应该越好,这是非常合乎常理的解决方案。

    (2) 按页面被访问度排序
    在这种方法中,搜索引擎会记录它所搜索到的页面被访问的频率。人们访问较多的页面通常应该包含信息比较多,或者有其它吸引人的长处。这种解决方案适合一般的搜索用户,而因为大部分的搜索引擎都不是专业性用户,所以这种方案也比较适合一般搜索器使用。

    (3) 进一步净化(refine)结果
    按照一定的条件对搜索结果再进行优化,可以再选择类别、相关词等。
  • 相关阅读:
    逆向工程工具介绍2-IDA
    汇编语言基础-1 基本语言元素
    Python常用标准库1-Turtle,Random,Time和Datetime
    Python的模块、包和库的概念
    Go语言的函数修饰符
    物理层2-物理层下面的传输媒体
    数据分析之两种用户分群方法(RFM和聚类)
    区间估计与假设检验公式
    源码分析过滤器与拦截器的区别
    Springboot拦截器使用及其底层源码剖析
  • 原文地址:https://www.cnblogs.com/tuyile006/p/531388.html
Copyright © 2011-2022 走看看