搜索引擎工作原理笔记

搜索引擎的工作过程大体可以分为三个阶段:
1.对网页进行抓取建库
搜索引擎蜘蛛通过抓取页面上的链接访问其他网页,将获得的HTML代码存入数据库
2.预处理
索引程序对抓取来的页面数据进行文字提取、中文分词、索引等处理,为后面排名程序使用时做准备。
3.给搜索结果进行排名
用户输入关键词后,排名程序调用索引库数据,计算数据和关键词的相关性,然后按照一定格式生成搜索结果页面。

↑用到了大概三个程序,蜘蛛、索引程序、排名程序

对网页进行爬行、抓取、建库

如果我们要从一个页面进入另一个页面,我们需要在页面上点击这个超链接跳转到新的页面,这个链接指向另一个网页,相当于这个网页的入口
 

 

或者如果我们知道这个网页的url地址,就算我们没有在页面上看到链接到该网页的可点击的超链接,也可以通过在地址栏输入url地址转到该页面


 

当我们在一个网站发布了自己的文章,这篇文章会产生一个新的独一无二的url地址,当人们点击这个地址,它不会跳转到其他人写的文章页面,而是你写的特定的那一篇。
可以看出,所有页面,都会产生一个url地址使我们可以访问它。

整个互联网是由相互链接的页面组成的,如果一个网页,没有任何一个页面链接它,我们也不知道这个网页的地址,就算这个页面真实存在,它也会像一个孤岛一样,我们无法访问到这个页面。

日常生活中我们有多个搜索引擎可以使用,比如百度、谷歌、搜狗、bing等。
不同的搜索引擎就算查询同一个内容返回出来的结果都不一样,这是因为各个公司给内容进行排序的计算方式都是不一样的,哪个页面该排到第一页/哪个网页该排到最后一页/哪个网页根本就不应该展示出来都是有他们公司自己的评判标准,这些排名算法具体的内容基本都不会对外公开,避免被其他公司搜索引擎公司知道,因为排名算法是每个搜索引擎公司的核心竞争力。

为什么排名算法是每个搜索引擎公司的核心竞争力?

一般人们都会看哪个搜索引擎搜索出来的结果更符合TA自己的需求(相关性更高)就会选择长期使用哪一个。
比如,你在搜索输入框里输入【空调】两个字想查询关于空调的信息,结果搜索结果页给你返回的内容第一页竟然是一些电视机/马桶/衣柜之类的销售链接,这样相关性不高的网页越多,对你的使用体验就越差,最好的体验是,你搜索【空调】后,返回的页面里全是关于空调的信息,这样节约了你获取信息的时间成本,使你更方便的获取想要的资讯。

而排名算法就是为了让返回的结果尽量符合用户查询的内容的一种算法,他会对网页进行排名,把觉得对用户最有价值的网页排在前面,比如第一页第一个,用户能最快的看到这个网页,把相关性较差不重要的网页排在后面。把那些没有用的没有价值的页面直接不展示出来,经过对这些网页的排序,让用户尽量在只看第一页的情况下就能找到自己想要的资讯,解决掉自己的问题。

所以搜索引擎公司只要能对网页进行合理的排序,带给用户最大的方便,让用户感觉到返回的内容都很精准,正好是他们想要的内容,那么用户就会持续使用这个搜索引擎,所以如何对这些网页进行排序的计算方式就是每个搜索引擎公司的公司机密了。

爬行抓取搜索引擎工作的第一步,目的是完成数据收集的任务。

当用户在搜索框输入想查询的内容后,所有展示出来的网页都是需要先经过搜索引擎的收集才能展示出来的,只有收集了,才能通过分析网页中的内容,对这些网页的价值和相关性进行一个判断,经过对网页的排序之后再返回给用户,用户在搜索结果页上看到的所有网页,都是已经被搜索引擎收集进数据库中的网页。

而那些互联网上没有被搜索引擎收集到的网页(搜索引擎不是什么网页都会放进数据库,每个搜索引擎都有自己的一个标准,就是什么样的网页才会被收集到数据库中。就像人类吃东西一样,只吃自己认为该吃的食物),就变成了永远无法访问的孤魂野鬼。

注:网页和网站的区别需要注意,蜘蛛在判断需不需要收集进索引数据库的是以网页为单位的。

比如整个淘宝是一个网站,但是淘宝中某一个商品的详情页面才算网页,还比如你现在所看的这篇文章所在的这一个页面才算网页

所以,整个淘宝网站的页面那么多,蜘蛛在收集网页时,就算收集了A商品那页详情页面,但不代表B商品详情页面也被收集进索引数据库了,蜘蛛会对每个页面进行评判,只有该页面到达他的标准了,认为可以收集到索引数据库里了,才会把这个页面添加进去,而不是它认为淘宝这个网站很有价值,就把整个网站里所有页面全部收录进去了,SEO里有个概念叫做收录率,指的是页面的收录率,而不是网站的收录率。

蜘蛛
搜索引擎用来爬行和访问页面的程序叫做蜘蛛/爬虫(spider),或机器人(bot)。

蜘蛛访问网站页面的流程和人们在浏览器上访问页面的流程差不多,蜘蛛访问页面时,会发出页面访问请求,服务器会返回HTML代码,蜘蛛把收到的HTML代码存入原始页面数据库

互联网上的页面这么多,为了提高爬行和抓取的速度,搜索引擎会同时使用多个蜘蛛对页面进行爬行。

理论上来说,互联网上的所有页面(这里指的是通过超链接互联链接在一起的页面,而不是那种虽然这个页面存在,但是没有任何网页用超链接指向他),蜘蛛都可以沿着页面上的超链接将所有页面爬行一遍,但是蜘蛛不会这么做,蜘蛛的时间有限,它会用效率最高的方式找到互联网上它觉得最有价值的网页。
如果一个网站的页面普遍质量较低,蜘蛛就会认为这是一个低质网站,让用户阅读这类没有价值的网页是没有必要的,对于这类网页,它会减少爬行的频率,将重点放在其他质量更高的网站,去其他更有价值的网站上收集网页存入数据库。

但是蜘蛛不是全能,它也有评判错误的时候,比如蜘蛛不会收集空短页面,也就是内容空洞毫无营养,主体内容又短的页面,蜘蛛不会浪费数据库的空间放入这些网页。

但是一个页面究竟是不是真正的无价值网页,蜘蛛判断成功的正确率

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值