CSDN|42 张图带你揭秘后端技术都要学啥?( 五 )
- 数据库分片
搜索引擎我们使用谷歌浏览器的时候 , 输入搜索关键字 , 就会出现搜索到多少条结果 , 用时多少 , 它是如何做到在如此短的时间完成这么大数据量的搜索 。 先来想第一个问题 , 全世界这么多网页在哪里?互联网的存在让你和我隔着屏幕都知道你多帅 。 当然 , 每个网页中都会存在很多其他网页的超链接 , 这样构成了庞大的网络 。 对于搜索引擎而言 , 目标为解析这些网页获取超链接 , 下载链接内容(过滤) , 具体一些说 。 将URL存放于池子中 , 从池子中取出URL模拟请求 , 下载对应的HTML , 并存放于服务器上 , 解析HTML内容时如果有超链接URL , 检测是否已经爬取过 , 如果没有暂存队列 , 后面再依次爬取 。 架构图如下:
本文插图
爬虫常规方法将获取的所有网页进行编号并得到网页集合 。 然后通过分词技术获得每一个单词 , 组成矩阵如下所示:
本文插图
分词就这样按照单词-文档的方式组织起来就叫做倒排索引了 。
本文插图
倒排索引Google通过建立<单词 , 地址>这样的文档 , 主要搜索到单词就能定位到文档的地址列表 , 然后根据列表中文档的编号就展现文档信息从而实现快速的检索 。 如果搜索出来结果很多 , Google是如何能更精准的将我们需要的信息呈现给我们呢 。 它很明显有个排序功能 , 那是如何排序的?Google使用了一种叫做"PageRank"的算法 , 通过计算每个网页的权重 , 并按照权重排序 , 权重高的自然就在显示在前面 , 那问题来了 , 为啥权重高的 , 排在前面的通常就是用户所需要的呢?这就得了解下pagerank算法了 。 在pagerank中 , 如果网页A包含网页B说明A认可B , 即投一票 。 如下图ABCD四个网页所示 , 箭头代表超链接的方向 , 比如A->B代表A网页包含B的超链接
本文插图
pagerank怎么计算的?ABCD 初始值都为1 , 然后根据关系计算权重 。 比如此时B包含了AD两个网页 , 那么权重1被分为两个1/2分别给A和D , 此时A包含BCD , 那么此时A页面新的权重为1/2 + 1/3 + 1 = 11/6 。 pagerank 值越受推荐 , 代表用户越想看到 。 基于每个网页的 pagerank 值对倒排索引中的文档列表排序 , 靠前者则是用户想看到的文档 。 这种是因为超链接 , 引入权值的方式排序 。 还有其他诸如对于商品售卖次数排序或者电影点赞或评价分数排序 。 还有通过关键字查找 , 希望找到和搜索词相关 , 这个时候可能就会采用词频TF进行排序 , 词频代表所查词和文档的相关程度 。
本文插图
词频TF比如我们搜索"Java后端"出现的结果以"后端"的相关技术 。 在大部分的应用中都会涉及到搜索引擎技术 , 技术庞大且复杂 , 希望各位老铁根据自身情况搜索相关所需学习 , 校招面试中不出现盲点即可 。
推荐阅读
- |22页PPT:京东物流揭秘直播电商变局背后,供应链打响新战争
- |vivoX50Pro拆解:揭秘微云台结构是如何放进手机的?
- 黑洞|诺贝尔奖得主彭罗斯,跨学科探究的黑洞揭秘者
- CSDN|CSDN”好师父“培养高素质技术人才
- |揭秘:NASA如何为美国经济做出重要贡献
- 苹果手机|独家揭秘苹果新iPhone 12的价格,全部搭载5G
- 数据中心|取代Intel!NVIDIA数据中心专用处理器揭秘:一颗DPU顶替125颗x86 CPU
- 苹果|苹果正式宣布10月13日举行iPhone 12揭秘活动
- 英特尔|取代Intel!NVIDIA数据中心专用处理器揭秘:一颗DPU顶替125颗x86 CPU
- |10月14日发布!iPhone12上市时间及售价独家揭秘