一.  搜索引擎

组成部分:

1. 网络爬虫(web crawler) 2. 索引系统(indexing system) 3. 搜索系统 (searching system)

consideration:

1.Economics  2.Scalability 3. Legal issue

二. 网络爬虫(web crawler)

web crawler 需要考虑两个问题:

politeness (遵守robots协议以及不要频繁访问同一个主机)

performance (多线程)

工作过程: 首先我们给爬虫一个初始的种子url集,然后爬虫下载这些url指向的页面,把内容提取出来交给索引系统,把页面中包含的url提取出来加入url池。

一个简易的爬虫算法

UrlsTodo = {‘‘yahoo.com/index.html’’}

Repeat:

url = UrlsTodo.getNext()

html = Download( url )

UrlsDone.insert( url )

newUrls = parseForLinks( html )

For each newUrl not in UrlsDone:

UrlsTodo.insert( newUrl )

front queue  和 back queue 的工作过程:

前向队列: 爬虫从html文件中抽取出url, 如果这个url没有被访问过的话,那么就将它加入队列。将前向队列分成优先级1-N的不同的队列,当有一个url进入时,根据不同的策略,给这个url分配不同的优先级,并加入到对应的队列中。通常,我们将容易变化的网页赋予更高的优先级,如新闻。

后向队列:后向队列的分队方式,同一个主机为一个队列。每一个对列需要存储主机名和上次访问这个主机的时间。当爬虫要爬取一个网页时,从后向队列中以一定的策略抽取url,若访问这个url所在的主机的时间间隔小于最小时间间隔,那么,就暂时不爬取这个网页。

当后向队列有队列为空时,从前向队列中抽取一个url(按照优先级的策略),若这个url所在的主机没有在当前后向队列中,那么就把这个url加入到空的队列中。若这个url的主机已经存在在后向队列中,那么将这个url加入到那个主机的队列。再从前向队列中抽取一个url...

[IR课程笔记]Web search的更多相关文章

  1. [IR课程笔记]Hyperlink-Induced Topic Search(HITS)

    两个假设 1. 好的hub pages: 好的对某个主题的hub pages 链接许多好的这个主题的authoritative pages. 2. 好的authoritative pages: 好的对 ...

  2. [IR课程笔记]向量空间模型(Vector Space Model)

    VSM思想 把文档表示成R|v|上的向量,从而可以计算文档与文档之间的相似度(根据欧氏距离或者余弦夹角) 那么,如何将文档将文档表示为向量呢? 首先,需要选取基向量/dimensions,基向量须是线 ...

  3. [IR课程笔记]Query Refinement and Relevance Feedback

    相关反馈的两种类型: “真实”的相关反馈: 1. 系统返回结果 2. 用户提供一些反馈 3. 系统根据这些反馈,返回一些不同的,更好的结果 “假定”的相关反馈 1. 系统得到结果但是并不返回结果 2. ...

  4. [IR课程笔记]Page Rank

    主要目的: 在网络信息检索中,对每个文档的重要性作出评价. Basic Idea: 如果有许多网页链接到某一个网页,那么这个网页比较重要. 如果某个网页被一个权重较大的网页链接,那么这个网页比较重要. ...

  5. [IR课程笔记]概率检索模型

    几个符号意义: R:相关文档集 NR:不相关文档集 q:用户查询 dj:文档j 1/0风险情况 PRP(probability ranking principle):概率排序原理,利用概率模型来估计每 ...

  6. [IR课程笔记]统计语言模型

    Basic idea 1.一个文档(document)只有一个主题(topic) 2.主题指的是这个主题下文档中词语是如何出现的 3.在某一主题下文档中经常出现的词语,这个词语在这个主题中也是经常出现 ...

  7. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  8. Andrew 机器学习课程笔记

    Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...

  9. 操作系统学习笔记----进程/线程模型----Coursera课程笔记

    操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...

随机推荐

  1. 深入浅出 Cocoa 之 Core Data(3)- 使用绑定

    深入浅出 Cocoa 之 Core Data(3)- 使用绑定 罗朝辉(http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 前面讲解了 Core Data 的框架, ...

  2. VS2010中 报错:error C2146、error C4430 原因一:缺少CvvImage类

    今天用vs2010打开vs2008的一个工程,报了好多错: 1>e:\visual studio 2010\projects\imageprojects\morphology\morpholog ...

  3. 细微之处见功夫!这5点让Wish3D Earth与众不同

    产品的体验是全方位的,任何一点,都可能决定成败.细微之处见功夫,5个细节,告诉你Wish3D Earth为什么与众不同. 中科图新最新发布的Wish3D Earth,是基于WebGL技术的网页版三维地 ...

  4. Win7如何自定义鼠标右键菜单 添加新建WORD文档

    鼠标右键添加新建WORD文档.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.doc] @="Word.Docume ...

  5. TP多条件查询

    $stcount = M("Results_all")->alias('a') ->join("s_test_name as b on a.subject = ...

  6. RF ---library

    RF内置库: http://robotframework.org/robotframework/ SSHLibrary:   ---WEB自动化测试 http://robotframework.org ...

  7. adb 功能大全

    当然首先是须要进入cmd命令行,执行 adb shell的. 以下介绍一些我们常常须要可是不怎么会用的命令 1. df -sh 查看当前目录占用空间大小 2. du 查看系统如今的内存使用情况 3. ...

  8. LeetCode 之 Valid Palindrome(字符串)

    [问题描写叙述] Given a string, determine if it is a palindrome, considering only alphanumeric characters a ...

  9. caffe编译的问题 找不到opencv的 tiff库文件

    解决办法:    sudo  su cmake  .. make  -j8 make  pycaffe make  install 问题解决. 看起来是权限问题导致.

  10. cacti 安装和组件添加

    安装cacti 步骤 1.准备lamp环境 2.准备所需包:rrdtool(绘图) cacti(安装程序) net-snmpd(数据收集) 3.安装所需库文件 rrdtool所需库文件有: cairo ...