目录
所谓“道”,在搜索引擎的语境中,指的是那些构建搜索引擎时遵循的恒定原则和基础规律,这些“道”可以概括为搭建搜索引擎的三大核心步骤,即:
1)广泛自动地抓取和下载互联网上的网页内容;
2)为这些海量的网页内容构建高效且易于检索的索引;
3)基于网页内容的质量以及与用户查询的相关性进行精准的排序和呈现。
这三个步骤简洁地归纳为“下载”、“索引”和“排序”,作者强调,任何一家公司在构建搜索引擎时,都必然需要遵循这三个核心步骤。
接下来,我们将针对这三个关键步骤,进行更为深入和通俗的科普解读。
1. 网页下载(解决有没有的问题)
在16世纪的哥尼斯堡(现今俄罗斯的加里宁格勒),有一个广为人知的谜题,即“哥尼斯堡七桥问题”。这个游戏要求玩家在不重复经过任何一座桥的情况下,遍历连接河两岸及其两座小岛的七座桥。这个问题曾激发了无数人的好奇心和求知欲。
后来,著名数学家欧拉利用数学方法对此进行了深入研究,并论证了这样一个遍历路径是不可能存在的。这一发现不仅解决了哥尼斯堡的谜题,更被视为图论这一数学分支的起点。
注:欧拉基于“哥尼斯堡七桥”问题,提出了一个定理——“如果一个图能够从一个顶点出发,每条边 不重复地遍历一遍回到这个顶点,那么每一顶点的度(即与顶点直接相连的边的数量)必领为偶数”。显然,下图中“河岸A”与“河岸B”的度明显是奇数,因此“哥尼斯堡七桥”问题是无解的。

在图论中,图(Graph)由节点(Vertex)和连接这些节点的边(Edge,或称为弧)构成。图论作为数学的一个分支,涵盖了众多的算法和理论,但其中最为基础和关键的是图的遍历算法。遍历算法的目标是以特定的路径,通过节点间的边,访问图中的每一个节点且仅访问一次。
图的遍历算法主要分为两种:广度优先搜索(Breadth-First Search,简称BFS)和深度优先搜索(Depth-First Search,简称DFS)。
1.1 遍历算法
1.1.1 广度优先搜索
为了更直观地解释图论中的遍历算法,作者采用中国铁路图作为示例,将其进行了抽象化表示。在这个简化模型中,每个城市被抽象为一个节点,而城市间的铁路线则被抽象为连接这些节点的直线段。
假设我们从北京出发,计划通过铁路遍历图中所有其他城市。若采用广度优先搜索算法,算法将首先探索与北京直接相连的所有城市(这些城市构成了搜索的“第一层”)。完成第一层的遍历后,算法将继续探索与北京间隔一个城市(即第一层城市的邻居)的所有城市(形成“第二层”)。随后,算法会按此逻辑继续扩展,遍历与北京间隔两个城市的所有城市(构成“第三层”),如此类推。
在下图中,序号标明了在广度优先搜索算法下各个城市的访问顺序。

1.1.2 深度优先搜索
深度优先搜索的特点可以形象地描述为“一条路走到底”。在遍历过程中,算法首先随机选择与北京直接相连的一个城市作为起点,然后沿着这个方向不断深入,尽可能访问到与该城市相连的最远端(即最深的分支末端)的城市。当到达某个分支的末端后,算法会回溯到上一个节点,并继续探索其他未访问的分支,直到所有的城市都被访问到。
在下图中,序号表示了在深度优先搜索算法下各个城市的访问顺序。
通过对比两种算法的遍历逻辑,可以看出,深度优先搜索强调深入探索每一个分支,而广度优先搜索则更注重逐层、有序地遍历整个图。

1.2 网络爬虫
互联网虽然庞大且错综复杂,但本质上可以视为一张庞大的图。在这个图中,每个网页扮演着节点的角色,而网页之间通过超链接(Hyperlinks)相互连接,这些超链接就如同图中的边,连接着各个节点。网络爬虫(Web Crawlers

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



