美文网首页
信息检索复习(10)——Web搜索

信息检索复习(10)——Web搜索

作者: Eylen | 来源:发表于2018-06-27 22:05 被阅读0次
    • Web搜索结构


    • 采集器(爬虫)必须提供的功能特点

      1. 鲁棒性
        Web中有些服务器会制造采集器陷阱,这些陷阱实际上是web页面的生成器,它能在某个域下生成无数网页,从而使采集器陷入到一个无线的采集循环中去。采集器必须要能从这类陷阱中跳出来。当然,这些陷阱不一定是恶意的,有时可能是网页设计疏忽导致的。
      2. 礼貌性
        Web服务器具有一些隐式或显式的政策来控制采集器访问它们的频率。设计采集器时必须要遵守这些代表礼貌性的访问策略。(遵守robots.txt ,只访问允许的网站)
    • 采集器应该提供的功能特点

      • 分布式
      • (规模)可扩展性
      • 性能和效率
      • 质量
      • 新鲜度
      • (功能)可扩展性
    • 采集器的架构

      1. 待采集URL池
      2. DNS解析模块
      3. 抓取模块
      4. 分析模块
      5. URL 去重模块
    • URL采集池

      • 支持优先级处理并遵循礼貌性访问原则
      • 两个主要子模块:F个前端队列集合,B个后端队列集合
      • 满足先进先出原则
      • 前端队列主要实现优先级访问功能,而后端队列实现礼貌性访问功能
      • 首先,优先级分配器会基于URL的抓取历史赋给该URL一个整数i表示其优先级,其中i的取值在1到F之间。比如给一篇变化更频繁的文档分配更高的优先级。
        B个后端队列中的每个队列维持下列固定情况:(1)当采集正在进行时,队列不会为空(2)队列只包含来自单个主机的URL。使用一个辅助表T来维护从主机到后端队列的映射。当某个后端队列为空并从前端队列重新填充时,T必须进行相应的更新。
        维护一个堆队列,其中的每个元素对应一个后端队列,元素值为该队列对应的主机重新访问的最早时间te。
        某个采集线程在请求URL池的一个URL时,会从上述堆中取出其根节点,并且等待相应时间te。然后,从根节点对应的后端队列j中取出队列首部的URLu,并指令u的抓取操作。采集u后,条用线程会检查j是否为空。如果为空,则选择一个前端队列并去除该队列的首部URLv。在选择前端队列时会倾向于高优先级队列(通常有一个随机过程来实现),即保证高优先级URL能更快流入到后端队列中。对于URLv,我们会检查在某个后端队列中是否已包含了来自同一主机的URL。如果存在,那么v就会加入该队列中,这样我们就需要重新回到前端队列来寻找另外一个候选URL插入到现在为空的队列j中。该过程不断继续指导j不再空。任何情况下,对队列j,线程都会基于其中上次采集的URL属性在队中插入一个新的最早访问时间te。
    • Web网页的重复问题

      • 检测重复最简单的方法:为每个网页计算出一个指纹,它是整个网页文本的一个很精炼的摘要。
      • 对于Web的近似重复的现象:搭叠技术(shingling)

    相关文章

      网友评论

          本文标题:信息检索复习(10)——Web搜索

          本文链接:https://www.haomeiwen.com/subject/cagiyftx.html