搜索引擎能如此快速的在全网范围内检索并抓取关键字,是怎么做到的?

综合网编2023-03-09 22:192660

要回答这个问题,我们先玩个游戏,游戏规则是:

1. 甲事先把一个1000以内的数写在纸片上,乙不知道,由乙来猜。

2. 乙每次猜一个数,甲需要告诉乙对不对,如果不对,甲要告诉乙,他猜的数比纸片上的数大还是小。

3. 乙猜的次数少于12次则获胜。

1000以内的数,你能在12次以内猜出来吗?如果不知道数学原理就很难,如果知道“折中法”,则很易。1000每次除以2,11次就可以到1。

假如纸片上的数字是639。如果从1开始猜,每次加1,要猜639次。如果从1000开始猜,每次减1,需要300多次。而采用折中法,只需9次,如下:

乙第一次猜500(1000的一半),甲告诉他小了。

乙第二次猜750(500和1000的中间数),甲说大了。

乙第三次猜625(500和750的中间值),甲说小了。

乙第四次猜687(625和750的中间值取整),甲说大了。

乙第五次猜656(625和687的中间值),甲说大了。

乙第六次猜641(625和656的中间值),甲说大了。

乙第七次猜633(625和641的中间值),甲说小了。

乙第八次猜637(633和641的中间值),甲说小了。

第九次猜639(637和641的中间值),甲说正确。

只用了9次就猜出来了。

其实1万以内的数,只需要13次就可以猜出来。10万以内的数,最多17次就可以猜出。

搜索引擎索引原理和这个类似,但不限于这些原理。比如还有二叉树之类。

搜索系统会先用爬虫程序把各网站的网页信息爬到自己的服务器建立索引。建立索引的方法会用到类似上面的数学原理。

有了索引,搜索速度就快了。索引就像一本书的目录,书虽厚,但有目录,可以快速翻到你要找的章节。如果没有目录,你要翻到你想去的章节会很慢。

评论区