SOUGOOD

千亿中选出10个,只需1秒,搜索引擎为什么这么快?

互联网上有上千亿个网页,通过输入一个关键词,搜索引擎却能够在1秒不到的时间返回搜索结果,且无论是搜索网页,还是图片、文件、视频! —— 为什么如此之快?

搜索引擎
用时0.44秒

有人说因为这是计算机啊,又不是人,当然快…

也有人说因为他们是大公司,有很多服务器,技术牛逼呗,速度当然快…

但这并不能解释,为什么同样拥有强大服务器和技术的微软操作系统windows上搜索一个文件的却要很长时间。难道你的操作系统上的文件超过千亿个吗?

搜索引擎公司确实有先进的服务器,这些机器也能够在一定程度上提供速度支持,但并不是解决“千亿选10个,只用1秒”的关键。

实际上,真正想要快速响应,关键是能够快速发现互联网上的网页并找到这些网页的“偏旁部首”,进而像查字典一样找出一张张网页来。 —— 没错,就像新华字典一样

  1. 快速发现互联网上的网页 —— 快速搜集
  2. 找到这些网页的“偏旁部首” —— 快速查询

一、快速发现互联网上的网页

今天互联网上我们看到的所有信息都是以网页形式出现的,无论是浏览器中看到的有清晰网址的网页,还是app中看到的一个一个的界面,背后都是网页,网页上可能有标题,有段落,有视频,有音频等信息,这些就是用户能搜索的所有信息源了。

互联网发展至今,已经累计有上千亿的网页,怎么收集这些网页信息? 这个部分就是爬虫的工作,我们熟悉的百度,google,360,搜狗等搜索引擎都有自家的爬虫,这些爬虫分布在全国各地的服务器上,日夜不停息的从互联网上抓取网页信息,然后保存到自家数据库,提供用户搜索服务。

当然搜索的工具不仅仅只有搜索引擎,比如现在比较火的社交媒体,如知乎,微博,小红书,微信等等,这些平台自身当然会存储这些信息,用户发布的文字(回答,笔记),视频(长视频,短视频),音频(音乐,教学)等信息就直接进到数据库中了,每个平台也有几个亿的网页信息提供用户搜索。

简单来说,信息要么就是从互联网上爬取放到自家数据库,要么用户发布后就直接在数据库中。

二、到这些网页的“偏旁部首”

这就像在人海茫茫中,找一个灵魂伴侣一样,那有这么容易?搜索引擎尽然能在1秒内把可能对你有用的信息放到你面前,背后一定有一套完整的解决方案,才能实现快速响应的。

其实原理就和新华字典一样

新华字典 拼音音节 索引表

你看呐,我们并不会从新华字典第一页翻到最后一页,一页一页找,从几万字中找到你要的那个字。我们的搜索过程是这样的:先查看索引表(拼音或偏旁部首),然后直接翻到该字所在的页,直接就找到了对吗。

搜索引擎也有一张自己的索引表,这张索引表也可以用拼音和偏旁部首吗?算一算就知道这个方案不行,互联网上有上千亿个网页,拼音+偏旁部首 撑死也就是几百个,每个需要承载的网页数量依然几个亿的数量级,依然太大了。怎么办呢? —— 用关键词来当索引表

将几千亿的网页分类到几万个词语上:

1000亿 / 10万 = 1百万

这个量级,今天的计算机很容易处理的过来了。因此,搜索引擎最终采用了词语作为互联网的索引表,即用词语来给网页进行分类,大大提升了搜搜的效率。

关键词搜索 清华 python 课程

巧了,用户也刚好是用词语来搜索信息的!

总结

今天互联网上的信息已经是千亿级了,网页的数量在不断增加,网页当中的文字、图片、视频、音频等信息也越来越丰富,信息也越来越容易被搜索到。这些信息最终都会以词语的形式进行分类,文字内容通过分词之后变成一个一个的关键词,图片、视频、音频也可以通过各种各样的技术手段文字化,在同样按照词语的形式进行分类。 —— 关键词才是搜索引擎速度的秘密,它是互联网这个“新华字典”的“偏旁部首”

sougood

发表评论

已登录为sougood注销?