技术分为术和道两种,具体的做事方法是术,做事的原理和原则是道。

搜索引擎的原理其实非常简单,建立一个搜索引擎大致需要做这样几件事:

自动下载尽可能多的网页;

建立快速有效的索引;

根据相关性对网页进行公平准确的排序。

1 布尔代数

中国古代的阴阳学说可以认为是最早二进制的雏型。

1854年,布尔的《思维规律》第一次向人们展示了如何用数学的方法解决逻辑问题。

AND运算的两个元素有一个是0,则运算结果总是0 。

OR运算的两个元素有一个是1,则运算结果总是1。

NOT运算把1变成0,把0变成1。

布尔代数对于数学的意义等同于量子力学对于物理学的意义,它们将我们对世界的认识从连续状态扩展到离散状态。

2 索引

每个网站就像图书馆的一本书,我们不可能在图书馆书架上一本本地找,而是要通过搜索卡片找到它的位置,然后直接去书架上拿。

最简单的索引结构是用一个很长的二进制数表示一个关键字是否出现在每篇文献中。

早期的搜索引擎由于受计算机速度和容量的限制,只能对重要、关键的主要词建立索引。至今很多学术杂志还要求作者提供3-5个关键词。

索引非常大,通过分布式的方式存储到不同的服务器上。普通的做法就是根据网页的序号将索引分成很多份,分别存储在不同的服务器中,每当接受一个查询时,这个查询就被分发到许许多多的服务器中,这些服务器同时并行处理用户请求,并将结果送到主服务器进行合并处理,最后将结果返回给用户。

需要根据网页的重要性、质量和访问频率建立常用和非常用等不同级别的索引。常用的索引需要访问速度快,附加信息多,更新也要快,而非常用的要求就低多了。

《数学之美》第8章 简单之美--布尔代数和搜索引擎相关推荐

  1. 数学之美系列五 -- 简单之美:布尔代数和搜索引擎的索引

    数学之美系列五 -- 简单之美:布尔代数和搜索引擎的索引 [建立一个搜索引擎大致需要做这样几件事:自动下载尽可能多的网页:建立快速有效的索引:根据相关性对网页进行公平准确的排序.我们在介绍 Googl ...

  2. 数学之美 第3章 统计语言模型

    数学之美 第3章 统计语言模型 回顾一下: 前面两章都是基础知识,告诉我们自然语言的起源基础,和一些发展过程遇到的问题,第二章告诉我们规则:理解自然语言(即分析语句和获取语义)这种处理方法不可能实现智 ...

  3. 简单之美——系统设计黄金法则

    最近多次看到系统设计与实现的文章与讨论,再加上以前读过的其他资料以及自己的一些实践教训,让我觉得应该把这些资料汇总整理一下.如果要从讨论不同系统的众多资料中总结一条黄金法则的话,那只有一个词--&qu ...

  4. 系统设计黄金法则:简单之美

    http://blog.sciencenet.cn/blog-414166-562616.html [注:本文已发表在2012年第5期<中国计算机学会通讯>.] 最近多次看到系统设计与实现 ...

  5. 转简单之美——系统设计黄金法则

    作者: 包云岗  发布时间: 2012-05-19 13:06  阅读: 3036 次  推荐: 1   原文链接   [收藏] 最近多次看到系统设计与实现的文章与讨论,再加上以前读过的其他资料以及自 ...

  6. [原创]linux简单之美(二)

    原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: 1 section ...

  7. 第三章 简单的优化模型

    第三章 简单的优化模型 本章介绍简单的优化模型,归结为微积分中的函数极值问题,直接用微分法求解. 建立优化模型的步骤: 做出若干合理简化的假设 首先确定优化的目标.寻求决策和决策受到的限制 运用数学工 ...

  8. c语言指定外设访问宽度 强制,《C语言程序设计》第2章 简单的C程序设计.ppt

    <<C语言程序设计>第2章 简单的C程序设计.ppt>由会员分享,可在线阅读,更多相关<<C语言程序设计>第2章 简单的C程序设计.ppt(71页珍藏版)&g ...

  9. 【趣学算法】第二章 算法之美(下)

    14天阅读挑战赛 [趣学算法]第二章 算法之美(下) 1. 一棋盘的麦子 1.1 题目描述 1.2 题目解析 1.3 爆炸增量函数 称上面的函数(1.2中的第一个函数)为爆炸增量函数. 爆炸函数也就是 ...

最新文章

  1. 那个能力很强的程序员学历造假,被辞退了!
  2. goland go test_Go单元测试实践一,快速上手
  3. qhfl-2 ContentType组件
  4. reentrantlock非公平锁不会随机挂起线程?_【原创】Java并发编程系列16 | 公平锁与非公平锁...
  5. 《scikit-learn》使用交叉验证优化KNN参数
  6. C#订阅与发布标准实现
  7. Template Method (模板方法模式)
  8. ie调取摄像头抓拍解决方案
  9. adprw指令通讯案例_PLC编程入门,编写控制程序必掌握选型指令
  10. 虚拟专用网之L2TP协议介绍
  11. 数据库篇--update触发器
  12. 错过等一年!物流与交通的先锋碰撞,点击进入这场大佬云集的学术盛宴
  13. 39. 组合总和:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列
  14. php 获取数组长度
  15. Allegro Layout常用功能
  16. Tensorflow(八) —— Tensor的合并与切割
  17. Android——百度APIstore+Json——获取新闻频道+新闻数据
  18. elastica php yii,shuliangfu
  19. 【编程竞赛】【CSDN竞赛第37期】
  20. C语言指针的一些易错点

热门文章

  1. SIGIR 2020开幕在即,智源学者论文收录占10%
  2. 读样章、写评语,即有机会获赠《编程大师访谈录》!
  3. 零知识证明实践教程,第三部分
  4. Java虚拟机的静态常量池和运行时常量池
  5. Google首席科学家Peyman 《计算成像去噪进展》斯坦福演讲报告,附视频与Slides
  6. 业界干货 | 图解自监督学习,从入门到专家必读的九篇论文
  7. 近期活动盘点:数据科学研究院论坛“人文社科专场、全球最大的免费编程社区公开课、DeeCamp2019:实战AI 铸造定雨神针...
  8. 150亿参数大杀器!Facebook开源机器翻译新模型,同传人员或失业
  9. CVPR 2021大奖出炉!何恺明获最佳论文提名,第一届Thomas S. Huang 纪念奖颁发
  10. 2019中国计算机高引学者榜单出炉,164人入选!