简单之美——布尔代数和搜索引擎的索引
1.术和道:
具体做事的方法是术,做事的原理和原则是道;任何术都会由独门绝技,到普及,到落伍,只有掌握了道,做事才能游刃有余
2.搜索引擎的原理:
自动下载网页——建立索引——根据相关性对网页进行公平的排序
3.索引
爬虫自动下载网页,然后给网页进行二进制的编号;
然后基于关键字做索引,每个关键字跟着一个数字,此数字是网页的二进制标识(最简单的做法是有多少网页就有多少位,如010010001...标识第2、5、9篇文章中有此关键字,大部分是0,只需记录1的位数即可)
搜索引擎把用户的查询语句转化为布尔运算的算式,然后利用布尔运算(先查找每个关键字的索引值,然后将所有关键字的索引值进行"与"操作得到的索引值即是文章的序号)
4.互联网搜索:
词汇表大约有30万个词,大约有10的10次方个网页,所有总的索引数为3000万亿,大部门的词出现在一篇网页中,压缩比为100:1,还有30万亿的索引,而且索引的值还包含关键之的位置、次数等,需要用分布式的结构来解决:
将创建好的索引通过分布式的方式存储在不同的服务器上(根据网页的序号将索引分成很多份,存储在不同的服务器中),当接收到一个查询请求时,这个查询就被分发到许许多多服务器中,并行处理查询请求,在主服务器上进行合并,最后返回查询结果
随着web2.0时代到来,网页信息大大增加,根据网页的重要性、质量和访问频率分为常用和非常用级别的索引