简单之美——布尔代数和搜索引擎的索引
1.术和道:
具体做事的方法是术,做事的原理和原则是道;任何术都会由独门绝技,到普及,到落伍,只有掌握了道,做事才能游刃有余
2.搜索引擎的原理:
自动下载网页——建立索引——根据相关性对网页进行公平的排序
3.索引
爬虫自动下载网页,然后给网页进行二进制的编号;
然后基于关键字做索引,每个关键字跟着一个数字,此数字是网页的二进制标识(最简单的做法是有多少网页就有多少位,如010010001...标识第2、5、9篇文章中有此关键字,大部分是0,只需记录1的位数即可)
搜索引擎把用户的查询语句转化为布尔运算的算式,然后利用布尔运算(先查找每个关键字的索引值,然后将所有关键字的索引值进行"与"操作得到的索引值即是文章的序号)
4.互联网搜索:
词汇表大约有30万个词,大约有10的10次方个网页,所有总的索引数为3000万亿,大部门的词出现在一篇网页中,压缩比为100:1,还有30万亿的索引,而且索引的值还包含关键之的位置、次数等,需要用分布式的结构来解决:
将创建好的索引通过分布式的方式存储在不同的服务器上(根据网页的序号将索引分成很多份,存储在不同的服务器中),当接收到一个查询请求时,这个查询就被分发到许许多多服务器中,并行处理查询请求,在主服务器上进行合并,最后返回查询结果
随着web2.0时代到来,网页信息大大增加,根据网页的重要性、质量和访问频率分为常用和非常用级别的索引
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?