zoukankan      html  css  js  c++  java
  • 《searching the web》学习笔记

    第一次读搜索引擎方面的文章,读的似懂非懂,先记录下来,以后再细看。


    摘要: 本文简要概括当前搜索引擎的设计。介绍一般的网络搜索引擎结构(architecture)后依次详细介绍搜索引擎每个部分的主要技术,包括crawling, 网页存储(local web page storage),indexing,以及如何利用网页间的链接特性。

    第一节:介绍

             面对海量的互联网网页和信息,输入关键词(query)得到希望的结果是互联网用户所需要的,这就需要设计网络搜索引擎。一般的搜索引擎使用信息检索(IR, Information Retrieval)技术,但是他是对应于规模小的,连续(coherent)的集合的搜索技术,对于互联网并不完全适用,为此需要引入新的技术。

             互联网的特点:(1) 海量数据、变化快、规模不断增大;(2)分布存储;(3) 网页间有超链接(蝴蝶结结构) 

    • Crawlers的主要任务是从初始网页集出发遍历全部的网页(理论上的全部),直到资源耗尽。Crawl时根据访问更多的站点,或者是访问特定的站点等目标而有不同的策略。
    • Indexer 的主要任务是抽取每个页面的全部字(word),并记录字出现的URL和在页面中的位置,还需要根据文档、结构、功能等创建不同的索引(index)。
    • Query Engine 的主要任务是接收和补全用户的查询(query),它依赖于indexrepository

     

    第二节:Crawling web pages 网页爬虫

    2.1. Page selection

    •  What is importance of page?   Interest Driven / Popularity Driven / Location Driven
    •  How a crawler operates?    Crawl & Stop / Crawl & Stop with threshold
    •  How a crawler guesses good pages to visit? (choose the next URLs to visit)   Reference to 1.1.

    2.2. Page refresh (如何更新页面)

             Uniform refresh policy > Proportional refresh policy

             Should consider freshness and age

    • Fresh strategy: 向下的抛物线模型
    • Open issues: crawlers与网站交互 & 并行crawl & crawl如何获取需要填表单或取得数据

     

    第三节:storage

    3.1. Challenges: 需要考虑的因素

    •  Scalability: 考虑大信息量
    •  Dual access mode: Random access for end-user, Streaming access for indexer and analysis modules.
    •  Large bulk updates: 顾名思义
    •  Obsolete pages: How to detect and remove obsolete pages.

    3.2. Design a distributed web repository: 需要考虑节点的结构,节点间的通信,及更新方式

    •  Page distribution policy: uniform/hash
    •  Physical page organization methods
    •  Update strategy: (Batch mode + shadowing)/ (steady mode + in place)

    3.3. Open issues:

    •  Indexer不仅仅通过网址,也考虑含的图片、视频等信息
    •  Streaming order

     

    第四节:indexing

             Indexing: link index | text index | utility index | etc.

    4.1. Structure of an inverted index

             The inverted list for a term is a sorted list of locations where the term appears in the collections, in which location means page identifier + position + payload field(occurrences+).

    4.2. Challenges

             Web scale: 创建和重建过程需要用的资源和时间

             存储结构与结果表现的平衡.

    4.3. Index partitioning

             Local inverted file: 每个节点分管一部分互不相交的pages

             Global inverted file: 每个节点分管一部分terms

    4.4. WebBase Text-indexing system

             Distributors + indexers + query servers

             两种技巧减少系统开销:

             Avoid explicit I/O for statistics: local to statisticians in memory

             Local aggregation: aggregation in nodes à statisticians

     

    第五节: Ranking and Link Analysis

             网页搜索和普通文本搜索的区别: 网页搜索数据量大、 网页间关联。本节中介绍如何利用网页间关系给出更准确的搜索结果。

    5.1. PageRank

             Citation ranking: 被指向的次数(越多说明越重要)

             PageRank: citation rank的基础上还要考虑指向该页面的页面本身的重要程度(递归)。求解rank可以归结为求一个矩阵的特征值1的特征向量,也可以迭代求解。

             上面的PageRank是以全部pages组成强连通图为前提的,在海量的pages中这个条件常常不满足,如可能会出现等级沉没(rank sink)和等级泄露(rank leak)发生,此时迭代式要做相应的变化。

             实践中需要解决的问题:迭代要收敛 & 收敛要快。(排序结果会更早的出现)

    5.2. HITS  (Hypertext Induced Topic Search)

             计算每个页面的全局等级(global rank,根据查询内容出的等级(query dependent ranking techinique),等级包含authority + hub score.

             Authority表述的是与query相关的程度的page,而hub score可能指向更多authoritiespage。交互迭代的过程。

             authorityhub score可以归结为求一个矩阵和其转置矩阵的特征向量问题,也可以用迭代法。

    5.3. Others

             Identifying communities + Finding related pages + Classification and Resource Compilation

    5.4. Future Directions

    •  如何利用其他信息,如查询记录,浏览记录等;
    •  开发更健全的文档分析技术,并利用到web中这些有链接的文档查询中

     

    第六节:总结

             根据用户的极少的搜索关键词,从海量的网页中,快速准确地返回查询结果。

             执行步骤:Crawlers分析网页,Query Engine返回相关网页,Ranking Module对返回结果排序。

     

     


    名词解释:

    1.       Crawls:爬虫跟踪pages,返回URLs,并把跟踪到的pages发送到page repository,直到资源耗尽。

    有些爬虫可能是访问尽可能多的sites,而不去考虑隐藏很深的pages

    有些爬虫可能是集中访问同一个域中的pages,如government

    2.       Crawl control model:确定哪些URLs继续跟踪,哪些可以忽略。

    3.       Indexer model: 抓取页面中所有文字,并记录每个文字出现的页面,形成lookup table.

    还要生成结构索引。

    数据量&变化速度&页面的相关links

    4.       Collection analysis module

    5.       Utility index: collection analysis module 创建,可以由网页包含的图片个数、宽度这些信息检索pages

    6.       Query engine:接受和补全用户的query

    7.       inverse document frequency(IDF):逆向文件频率,是词语i普遍重要性的度量。某一特定词语的IDF,可以由文件总数除以包含该词语的文件数目,再将得到的商取对数得到。

    term frequency(TF): 词频,指一个词语i在文件j中出现的次数。通常被正规化,以防止它偏向长的文件。

    IS(P)[ij]: TF[ij]*IDF[i] Interest Driven

    参考 http://hi.baidu.com/sowhatliu/blog/item/aa0a8817d701b70fc93d6db6.html

    8.       Backlink count: 导入链接数,指向该链接的hyperlink数。

    IB(P): Popularity Driven

    IL(P): Location Driven

     

     


    翻译:

    Information Retrieval (IR):信息检索

    Coherent: 一致的

    Scalable: 可扩展的

    Updateable: 可更新的

    Discriminating ability: 辨别能力

    Poisson process: 泊松过程,一个累积随机事件发生次数的最基本的独立增量过程。

    Bow-tie: 蝴蝶结

    and vice versa: 反之亦然

    schematically: 大致、示意地、粗略地

    crawler:爬虫

    grist:谷物、有利的武器

    retrieve: 检索

    repository: 仓库,资源库

    coverage: 误差

    bias: 误差

    be biased to: 偏重于

    leave out: 忽略

    lookup table: 查找表

    pose a difficulty: 构成难题

    less common: 更鲜为人知的

    scenario: 方案

    hierarchy: 层次结构

    bibliometrics: 文献计量学

    threshold: 阀值,界点

    up-to-date:最新的          

    obsolete: 陈旧的、过时的

    analogous: 相似的

    fluctuation: 波动

    periodically: 周期性地

    scenario: 情景

    ad hoc: 特设、为此

    scalability: 可测量的

    dual: 双重的

    bulk: 大容量

    advantageous:有好处的

    batch-mode: 批处理方式

    on the downside: 从不利的方法讲

    space compaction:

    checksum: 校验和

    cyclic redundancy check: 循环冗余度校验

    give rise to: 导致、形成

    adjacency: 邻接物

    retrieve: 检索

    accommodate: 适应

    lexicon:字典

    resilience:恢复力

    tradeoff:折中、权衡

    facilitate: 协助、促进

    disseminate: 扩散、传播

    mutually: 互相地

    replication: 重复实验、重现

    throughput:吞吐量

    concurrently:并发地

    overhead: 系统开销

    adverse: 敌对的,相反的

    spamming: 非所要信息,垃圾邮件        /

    aperiodic: 非规则的

    rank sink: 等级沉没

    rank leak: 等级泄露

    decay: 衰减

    dictate: 规定

    gravitate: 倾向于

    scarecely: 几乎不

    exotic: 奇异的

    mundane:平凡的

    baipartite: 双向的

    trawl:拖网

    co-citation:共被引

    hustle: 急速活动

    heuristic: 启发式的,试探性的.

  • 相关阅读:
    命令行参数解析
    业务
    从0开始架构二
    从0开始架构读书笔记
    增加ldl
    工具论
    go的web框架的context回调的原理
    id生成器雪花算法和雪花算法的sony实现
    软件架构师应该知道的97件事(六)
    进程通信简介
  • 原文地址:https://www.cnblogs.com/liyuxia713/p/2540721.html
Copyright © 2011-2022 走看看