一.  搜索引擎

组成部分:

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. Android Spinner In Toolbar

    As the title of the post suggest in this tutorial we will see how to have spinner widget inside the ...

  2. nginx +uwsgi + django配置

    一 安装 nginx 二 安装 uwsgi  ,pip install uwsgi 三 配置nginx 打开 nginx.conf文件, location / { # root html; # ind ...

  3. linux中kill几个有用信号

    kill用法 kill -signal PID 15 (SIGTERM) 正常方式杀死进程:(这种方式可能会存在一些问题:进程的子进程可能会无法终止,并继续系统资源) PID 或者 kill PID ...

  4. Putty的噩梦——渗透工具PuttyRider使用心得分享

    我们在入侵到一台主机的时候,经常会看到管理员的桌面会放着putty.exe,这说明有很大的可能性管理员是使用putty远程管理主机的. 该工具主要是针对SSH客户端putty的利用,采用DLL注入的方 ...

  5. VirtualBox 笔记

    VirtualBox 笔记p=111" target="_blank"> http://www.youi5.com/?p=111 VirtualBox 虚拟机,由I ...

  6. C#遍历指定路径下的目录

    通过指定路径訪问路径下的文件.在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.Create ...

  7. [ACM] POJ 3233 Matrix Power Series (求矩阵A+A^2+A^3...+A^k,二分求和或者矩阵转化)

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 15417   Accepted:  ...

  8. 总结自己使用shell命令行经常使用到的8个小技巧

    原创blog,转载请注明出处 Shell是命令解释器 [root@localhost ~]# cat /etc/shells 查看本系统共支持哪些shell 1 tab 命令补全 这个差点儿每次都能用 ...

  9. 用命令行执行ROBOT FRAMEWORK

    除了在ride中执行用例,我们也可以通过命令行的形式执行用例. 1.执行一整个项目 pybot+项目路径 2.执行某个测试集 pybot+测试集的路径 3.执行某个测试集里面的某个用例 pybot - ...

  10. sed: -e expression #1, unknown option to `s'解决办法

    报错如下: sed: -e expression #1, char 13: unknown option to `s' 需要替换的行为: monitor.url=http://192.168.25.1 ...