一、搜索引擎的工作原理
日常大家用到的搜索引擎其实大多所使用的工作流程都是一样的。通常是1.信息收集;
2.信息分析;3.信息系统建立;4.用户查询这四步。
信息系统用户查询信息收集信息分析
建立
但是由于各个搜索引擎所采取的细节战略不一样,所以我们得到的结果也不尽相同。比较典型的案例之前咱们也提到过,例如信息宽度优先的GO0GLE和百度等平台搜索,也有信息垂度优先的链家和携程这样的垂类平台搜索。今天咱们更深入的了解一下这些搜索引擎背后的工作原理。
简单来说,搜索引擎工作的主要四大部分,也是搜索引擎的工作流程包括:用蜘蛛爬虫爬取数据——分析系统分析数据——建立索引——查询结果。根据这四大步骤流程,我们的搜索引擎除了我们能看到的网页,主要也分这四大部分。
1.蜘蛛爬虫
我们每天有无数的人无数次点击搜索引擎去搜索各种各样的东西,而每一次搜索都在短短的零点几秒内就能搜到数万条甚至是千万条的信息供我们参考。为什么搜索引擎能够找到这么多结果呢?主要是依靠这些叫蜘蛛的机器人,每天24小时不眠不休地在网站上爬取各种各样的信息。
这些搜索引擎派出去的蜘蛛爬虫是怎么工作的呢?它们首先就是出去寻找各种网站的链接,在发现了链接后会把这个网页下载下来并且存入到临时的库中,并且继续提取这个网页的所有链接,如此循环。
那么搜索引擎的蜘蛛爬取网页有规律吗?答案是有的!如果没有规律、漫无目的的爬取,影响工作效率不说,也会影响爬取回来的信息的结果。所以,蜘蛛爬虫爬取网页的时候也会采取一定的策略,比如有时候会采用深度优先的策略,即把爬取到的结果里面,一层层爬取越深的链接越优先。或者采用宽度优先的策略,即爬取到的网页的子网页越宽越优先。
蜘蛛爬虫对于已经爬取过的网页还会进行重访,因为网页会更新、迭代、或者消失。为了保证搜索结果的时效性和准确性,爬虫会采取全部重访或者单个重访的方式来重新抓取信息。
在蜘蛛爬虫获取信息之后,这些网页信息就会进入我们的第二个系统:数据分析系统。
2.数据分析系统
爬取回来的网页,搜索引擎不会一股脑儿地全都吞下,而是要进行基本的数据分析处理,变成能够存储到索引系统的部分。这就像我们打猎一样,打回来的猎物要进行基本的处理才能存储起来。那么数据分析主要进行哪些步骤呢?
·清理
简单来说就是把爬取回来的网页代码进行删除,重复内容进行清理,然后把关键内容提取出来,就像我们把买回来的菜再去掉多余的部分、清洗干净、然后切段整理一样。
·链接分析
这一步骤中,搜索引擎会查询这个页面的反向链接有多少、导出链接又有多少,然后给页面权重进行评分。
.存入索引库
这一步就是搜索引擎在进行了前面的步骤后提取正文的内容,然后把内容分成N个词,进行排列然后存入索引库。
3.索引系统
当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前。
4.查询系统
最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
二、搜索引擎的分类
在认识我们的搜索工具这一节,以及垂直搜索这一节课程中,我们对于搜索引擎有了功能上和操作上的了解。而刚刚我们又了解搜索引擎的基本工作原理,在有了这些基础之后,我们在这里再进一步给大家做一个搜索引擎的分类,从而能够更深刻的理解为什么我们面对不同的搜索场景需求,要采取不同的搜索策略。
1.全文搜索引擎
全文搜索引擎就是我们一般意义上认识的搜索引擎,包括我们身边的Goog1e、Baidu等耳熟能详的大搜索引擎,都属于是全文搜索引擎。之前介绍的搜索引擎的主要工作步骤,也是全文搜索引擎的用法。
2.元搜索引擎
元搜索引擎是指,在通过搜索对话框里接受用户查询请求后,同时在多个搜索引擎上搜索,并将结果返回给用户。这种搜索引擎不需要大量的爬虫去爬取海量的网站信息,而是直接问各大搜索引擎要就行了,而且可以集中多个搜索引擎的资源。著名的元搜索引擎有webcrawler、Dogpile、Vivisimo等,比如webcrawler会在谷歌和雅虎两个搜索引擎中进行检索。在搜索结果排列方面,有的直接按来源排列搜索结果,如Dogpile;有的搜索引擎给出来的结果则是按引擎白定的规则将结果重新排列组合,如Vivisimo。
3.垂直搜索引擎
前面的课程中我们也介绍过垂直搜索引擎,和大型搜索引擎相比,使用垂直搜索引擎搜索范围更小、更精准。
大型搜索引擎的数据库储存了互联网上几亿至儿十亿的网页索引。但即使最大的搜索引擎建立超过二十亿网页的索引数据库,也只能占到互联网上普通网页的不到30%,不同搜索引擎之间的网页数据重叠率一般在70%以下。所以当你死磕百度而得不到想要的答案时,也可以更多的去尝试多平台搜索,同时配合咱们之后讲到的小技巧,成功率会高很多。我们使用不同搜索引擎的重要原因,就是因为它们能分别搜索到不同的内容。
三、高精度搜索的技巧
第五课中,我们己经学习了一些搜索指令。这节课,再为大家介绍几个能够让你更加深度挖掘搜索结果的技巧。在对搜索引擎的工作原理有了上面的了解之后,我想这些技巧理解起来会更加容易,而灵活使用这些技巧也能够让我们对搜索引擎的操控更加自如,从而迈向更高水平的搜索高手行列。
1.精确检索:“”(引号)和《》(书名号)的使用
在之前的课程我跟大家说过,提取关键词的搜索往往要口语化的一整句输入搜索出来的结果更多更好,因为机器不是人,无法提炼其中的关键字。但是,这并不绝对,其实更多的是取决于你的搜索场景和需求。
比如,有一次我在咖啡馆听到一首歌,是一个女声吟唱的英文歌,声音非常动听,歌词也非常优美。我想立马知道这是什么歌,是谁唱的,但是当时我只听到了其中一句歌词,是“Are you really here”,这是非常常见的一句歌词,没有很特别,如果我直接在搜索引擎中输入这句话,搜索出来的相关度会很低,因为搜索的结果会出现把这句歌词从中间拆分的情景。
这个时候,加上“ ”(双引号)或者《》书名号,就可以实现一句话不拆开的精确检索了,即把一整句话作为一个整体来检索。这样会大大提高检索的准确性。
2.字段检索
在第五课中,我们学习了inurl指令的使用,主要是用来限制网址中必须包含的字段,可以用这个方法把某一类的网址一网打尽。比如,我们在租房搜索的案例中,就使用了“inurl:gov.”,其中gov是英文government的缩写,只有在政府的网站上才会带有gov的字段,表示搜索的结果限制在政府的网站中。那其实我们还有很多其他的字段可以使用,插入这些字段,配合inurl使用,可以准确地把某一类型的网站筛选出来。在这里给大家做一个能够经常用到的字段总结:
如果你有一定的英语基础,还可以用类文进行内容检索。这里有一些英语的搜索指令,如果用在搜索英语的学术论文或者一些文献的时候,会大大地提高搜索的效率。比如,py是publication year的缩写。“1a”是指搜索语言,用1a=English,就可以把语言限制在英语中。搜索1ink:(输入网址A),就可以搜到哪些网页中放了A网址的链接。比如link:whitehouse.gov,就可以搜到有多少个网页放了白宫的链接。
这些搜索技能在你面临量大、点散、又要深入挖掘相关领域资料的时候,是非常好用的,尤共对于从事研究、写作或者咨询类的朋友米说,可以大大减少搜索时间。
3.模糊检索:*(星号)和?*(问号)的使用前面两点都讲的是如何让搜索更精确,这里讲一讲如何利用*(星号)和?*(问号)进行模糊搜索。这个技巧对于做学术文献检索尤为有效。
这个怎么使用呢?我给大家举一个例子,比如在英文中woman和women都代表女性,一个是单数一个是复数,中问就个字母的差异。在检索中,如果你想搜索既包含单数也包含复数的女性,就可以用wom*n,或者wom?n来模糊掉中间的这个字母带来的限制,于是不管是单数还是复数就都可以包括进来了。值得注意的是:虽然星号*是常用的,但百度不支持*号搜索指令。我们用Goog1e来举个例子。比如在Goog1e中搜索:中国文学*其中的*号代表任何文字。返回的结果就不仅包含“中国文学”,还包含了“中国文学网”,“中国文学论坛”,“中国文学在线”“中国文学家园”等内容。
同样的还可以应用在,比如*ology来表示专业领域,因为ology是表示学科的一个词根,比如生物学在英文中就是biology。
根据自己的需要,通过用这两个符号代替搜索中把不确定的部分模糊掉,扩大搜索范围,以便起到更好地和搜索引擎交互的效果,这边是模糊搜索的意义。
总结:知其然,还知其所以然
