Yandex搜索引擎通过在互联网上找到的相关网页文档回应用户查询。然而,目前情况互联网的大小以艾克斯字节(exabytes)为计量单位,即百亿亿字节,其中包含了海量信息。不用说,Yandex搜索并不是每次在这庞大的数据堆中搜索答案来回应新的查询。这个系统可以说是做好了功课。

为了进行搜索,Yandex使用搜索索引,它基本上是搜索引擎知道的所有单词及其位置的数据库。一个单词的位置是它在网页上的位置和网页在互联网上的地址的组合。搜索索引就像是一个词汇表或电话簿。与词汇表不同的是,搜索索引记录了搜索引擎曾经遇到的每一个单词。而与电话簿不同的是,搜索索引对于每个单词有一个以上的“注册地址”。

一个网络搜索引擎的运作分为两个阶段。首先,它爬行互联网,将其“拷贝”保存在服务器上。其次,它通过从服务器检索答案来回应用户的搜索查询。

后台工作

在搜索引擎开始搜索之前,它需要对在互联网上找到的信息进行准备,以便进行搜索。这个过程称为索引。一个特殊的计算机系统 - 网络爬虫 - 定期浏览互联网,下载新的网页并进行处理。它创建了互联网的一种“碳复制品”,存储在搜索引擎的服务器上,并在每次爬行之后更新。

Yandex拥有两个网络爬虫 - 其中一个是主要爬虫,它索引所有遇到的网页,而另一个称为Orange的爬虫则执行快速索引,确保最新的文档,包括在爬行前几分钟甚至几秒钟内出现在互联网上的文档,都可以在搜索引擎的索引中找到。这两个爬虫都有待索引的“等待列表”。列表不断添加爬虫在访问的网页上找到的新链接。网站管理员也可以通过使用Yandex.Webmaster服务将其网页添加到索引中,从而使新链接出现在等待列表中。网站管理员还可以提供其他详细信息,例如网站更新频率等。

在爬行过程开始之前,一个特殊的程序 - 调度器 - 创建一个时间表,按照这个时间表访问网页。调度是基于一些必要的信息检索因素,例如链接流行度或页面更新频率。时间表制定好后,搜索引擎的另一个组成部分 - 蜘蛛程序 - 接管工作。蜘蛛程序根据时间表定期访问网页。如果一个网站对蜘蛛程序是可访问的并且运行正常,程序会按照时间表下载网站的页面。它识别下载文档的格式(html、pdf、swf等)、代码和语言,然后将这些信息发送到服务器进行存储。

外贸的定义

在存储服务器上,另一个程序会清除网页文档中的HTML标记,只保留文本内容。然后,它会提取每个单词的位置信息,并将这个网页文档中的所有单词添加到索引中。原始文档也会保存在服务器上,直到下一次爬行。这使得Yandex可以为用户提供查看网页文档的机会,即使网站暂时不可用。如果一个网站关闭、一个网页文档被删除或更新,Yandex会从其服务器中删除它或用新版本替换它。

外贸的定义

搜索索引,以及所有已索引文档的副本,包括它们的类型、代码和语言,构成了搜索数据库。为了跟上互联网内容不断变化的特性,确保搜索引擎能够根据用户的搜索查询找到最新和最相关的信息,搜索数据库需要定期更新。在搜索引擎能够找到并返回结果给最终用户之前,每次新的数据库更新首先发送到“基本搜索”服务器。基本搜索服务器只包含搜索数据库的基本部分 - 不含垃圾信息、镜像站点或其他无关文档。这是搜索数据库直接响应用户查询的部分。

搜索数据库的更新以“包裹”的形式从主要爬虫的存储服务器发送到基本搜索服务器,每隔几天一次。这是一个非常耗费资源的过程。为了减轻服务器的负担,数据在夜间传输 - 这时候Yandex的搜索流量最低。通过使用多个参数,新的数据库部分与前一次爬行时最新版本进行比较,以确保更新不会破坏搜索结果的质量。经过成功的质量控制检查后,旧版本会被最新的更新所替换。

文章翻译自:yandex;原文链接:https://yandex.com/company/technologies/searchindex/

发表评论