google : 叫古高尔,。这是一个很大的数了 ~ 引申表示 Google 的索引量大。
科学家估计宇宙中原子的数量是 ,如果按照最小的基本粒子(夸克、电子、光子等)统计,再考虑到暗物质和暗能量,折算下来不应该超过 。
您知道 Google的Chrome 为什么可以在 零点几秒钟内找到成千上万甚至上亿的搜索结果吗?
大家,或多或少对字符串匹配算法了解,如
字符串匹配算法时间复杂度:
- 单模式串匹配
- BF顺序匹配 O(m*n)
- BF优化 是 RK哈希 O(n)
- KMP (数据结构里非常出名)
- BM (比KMP效率3~4倍)
- 多模式串匹配 (多模式串匹配,是在一个串中同时查找多个字符串)
- Trie树
- AC自动机
您看ta的时间复杂度,就知道绝对不可能在零点几秒钟内找到成千上万甚至上亿的搜索结果,那么是 Google 的搜索引擎太智能?
NO,NO,NO[ 改变自己-王力宏 ],哪怕ta的服务器扫描再快也不可能做的这点,如果做到了,毫无疑问,这个发明者成功的消灭了程序员这个物种。[ 一个程序员的工作,便是自动化让机器代替人; 工作的最巅峰就是自动化代替了自己 ],咳咳,这话有点夸张,理性的思考,您会发现任何东西都有极限,如,人工智能的极限就会让 ta 不能自己出现思想。其实,一些关于人工智能怎么怎么NB,很大程度都是人的主观臆想和直觉。您可能不信,我会以数据说话,请看下图。
- 图表为计算机问题解决能力,是经过许多科学和计算机、人工智能的学者讨论出来的,并由吴军博士导出的。
现在的计算机都是采用图灵机[一个数学模型],包括正在设计的新的计算机,从解决问题的能力来讲,都没有超过图灵机的范畴。
人工智能所能解决的问题只是世界上问题的很小一部分。现在世界上没有解决问题太多[比如,素数的分布,有兴趣可以看一下我的文章-数论入门],要想办法解决各种问题 ,而不是杞人忧天[毕竟您不是哲学家],担心人工智能太强大。
- 1. 世界上有很多问题,其中只有一小部分是数学问题;
- 2. 在数学问题中,只有一小部分是有解的;
- 3. 在有解的问题中,只有一部分是理想状态的图灵机可以解决的;
- 4. 在后一类的问题中,又只有一部分是今天实际的计算机可以解决的;
- 5. 而人工智能可以解决的问题,又只是计算机可以解决问题的一部分。
如果想了解另一部分,可以看我的另一篇博客 · 密码学鉴赏
AI 的边界,也是极限 ~
说回搜索引擎,这里面肯定有惊天的秘密了,对于像我们这种对算法复杂度要求比较高的人是非常有吸引力的。可是,Google的这把Ak-47是怎么实现的呢??答:> 好简单的,二进制和逻辑运算(布尔代数)! 哈·二进制 + 逻辑运算??确定??
当然了,我一言一司母戊鼎鼎鼎,肯定是有科学实现方法+数据。
当然,科学不等同于正确的结论,科学甚至不承认有绝对正确,放之四海皆准的真理。ta只是一种寻求更好的结论的过程,是我们看待这个世界的方法之一。但,相对于巫术、神谕、灵感,科学是直至到目前,我们所掌握的最能够准确描述我们世界的各种规律,并且能够发现规律,不断进步的方法。
首先,介绍一个概念 --- 量子化[ 搜索引擎能够匹配的原因 ]
高中学习的布尔代数,您应该没有忘记,哈,计算机专业的肯定不会。如,与、 或、非。布尔代数应用在计算机上是1938年,香农博士在ta的硕士论文中指出布尔代数可以实现开关电路,四则运算、乘方、开方、积分、等等,全都可以转换为二进制的布尔值。布尔使计算机拥有了 "量子化" 的功能,即把一个连续的状态扩展为离散的状态,从连续的变成一个个分离的。
其次,介绍一个概念 --- 索引[搜索引擎可以快速找到大量网页的原因]
我们去图书馆借书的话,比较合理的是不是直接去向管理员问搜索卡片,接着找到ta的位置,带回家,不太可能是去图书馆书架上一本本地找,小图书馆例外。
每个搜索引擎都是布尔运算的模型框。
搜索引擎的索引,采用的是图论中的遍历 (Traverse) 算法。
概念解释清楚了,我们看一下搜索引擎是咋实现这个思路的。我还想 Python 的毕设是写一个自己的垂直搜索引擎呢 ,加油加油~
搜索引擎本质就是一个不断运行的爬虫,时刻把爬的数据放到数据库存储。
我们图书馆就等于数据库,搜索卡片就等于数据库的查询语句(SQL)。搜索引擎会自动把用户查询的关键字转换为布尔运算的算式。例如,在搜索栏输入 "原子能" 对应的二进制数是 0100100011000001... ,这窜很长的二进制数就是最简单的索引,ta表示第二、第五、第九、第十、第十六篇文献包含这个关键字。 [0,表示没有,1表示此文献有匹配到,每一位代表一个文献]
计算机做布尔运算是非常快的,现在最便宜的微机都可以一个指令周期内进行 32 位布尔运算,1s数十亿以上。由于,这些二进制数绝大部分是0,所以,为了省空间,只存储为1的位数。
于是,搜索引擎的索引就是一张大表,表的一行对应一个关键字,关键字后面跟着一窜很长的二进制数。
简介完毕,正式开始。 p.s. 使用 Chrome 需要配备一个VPN,如果没有可看我另外一篇博客 工具。
p.s. 在设置里把搜索引擎换成百度等,搜索框就可输入中文,如果不调就需要用VPN不然就无法访问 ! !
Google语法与关键字优化查找
Google找书籍。
找资料这种事情,非常简单。可是搜索引擎ta找到的量太大,所以,我们可以按照内置的规则来筛选以减少不必要的时间和精力。现在,我们找一本书,见图。书名: Profiles of the Future
我们要下载电子版 可以这样写 Profiles of the Future + pdf 试一下 。
0.59秒找到了 上亿个。
我们再试一下 用双引号 "Profiles of the Future + pdf"
加上了双引号就只有 30 个了,神奇吧。
符号 | 功能 | 格式 |
+ | 搜索结果包含 +后的关键字 | Profiles of the Future +pdf |
- | 搜索结果不包含 -后的关键字 | Profiles of the Future -pdf |
~ | 搜索同义词, 结果会增加 | 测试 ~测试 |
. | 取代一个字符去匹配 | python .3 |
* | 贪心策略, 匹配所有字符 | python * |
" " | 强调引号里面的内容 | "Profiles of the Future + pdf" |
allintext | 网页正文匹配 :后的关键字 | allintext:Profiles of the Future |
allintitle | 网页标题匹配 :后的关键字 | allintext:Profiles of the Future |
cache | 缓存,以弥补CPU和内存速度 | cache : www.baidu.com |
define | 找一些网址是define = 关键字 | define 中华人民共和国 |
filetype | 指定文件格式 | filetype: pdf |
info | 查找指定网址的基本信息 | info: www.baidu.com |
link | 查看链接的网址 | link: http://c.biancheng.net/cpp/ |
related | 返回主页上链接的内容 | link: http://c.biancheng.net/cpp/ |
site | 区域搜索 | site : http://c.biancheng.net/cpp/ |
inurl | 结果是相关内容的网址 | inurl : 鲁迅 |
安利资料:Google镜像以及Google语法
p.s. 在镜像站里,不需要开VPN就可以访问国外网站,十分方便。
另外在镜像站里如搜索 youtube 后,不要登陆新的界面,镜像:顾名思义就是缓存了浏览器爬取的网页。
Google 语法实例
[更新ing...]