(本文原创,请勿转载)
中国搜索引擎界的千年老二--搜狗在腾讯这个大金主的支持和赞助下终于上市了,王小川这个黄金单身汉在隐忍多年后也看到了出头之日。借着这个机会,我也科普科普搜索引擎这种在浩瀚的网络世界中不可或缺的东西。
关于搜索引擎的工作原理,我就从后往前开始说吧。无论哪家搜索引擎,Google还是百度、搜狗或其他的,一般都由下载系统、处理系统、索引系统和查询检索系统、分词系统组成。
搜索引擎的网页抓取系统也叫下载系统会将网络爬虫(即网络蜘蛛)以一个起始链接放入网络世界中对网页进行探测,网络爬虫通过链接做深度优先和广度优先遍历,抓取链接网页的源代码,包括页面html标签和结构以及页面内容。网络爬虫抓取了这些网页后会将网页标题、链接及源代码存储到数据口中以备分析处理。多个网络爬虫会按规则分别负责不同区域的探测和抓取任务,它们在第一次抓取网页后,以后还会对已经抓取的网页进行不断的重复的抓取,因为涉及到网页的更新。
网页处理系统会对网络爬虫抓取的内容做分析处理,对网页源代码按照html结构进行解析,从标签中以预设的关键词词典结合关键词在网页中出现的位置进行分析、抽取、存储,计算出关键词在每个网页文件中的词频,建立倒排文件列表。同时对于已有网页的对比、更新也是由处理系统完成的。而预设的关键词词典会在用户使用搜索引擎的过程中得到丰富。网页处理系统对抓取的内容进行抽取、存储建立倒排文件列表后,索引系统会将倒排文件进行组织以建立索引,也就是将关键词、倒排文件、网页、链接建立映射的过程,这样的映射是基于倒排列表而建立的倒排索引完成的。经过这三个系统的工作后,搜索引擎就为查询系统准备好了粮草弹药。
用户在搜索界面输入搜索词或者搜索语句后,搜索引擎会启动分词也叫切词技术,将用户输入的搜索词或搜索语句同系统的关键词词典按照从前往后或者从后往前的算法逐字比对,如果匹配上则提取出搜索词组成query语句,接着启动查询索引,将query语句中的关键词映射到倒排索引中,倒排索引查询出与关键词匹配的网页链接列表返回到搜索结果处理系统。
查询系统会根据网页链接列表中各链接网页的相关性、质量、时效性以page rank等算法加上人工干预对网页链接进行排序,同时会获取从网页中提取的标题和摘要。排序、标题、链接、摘要就最终形成了普通用户所看到的搜索结果列表页面。
根据用户对搜索结果页的浏览习惯,用户一般只会对搜索结果首页所列出的网页链接打开几率较高,而首页中前十条被打开的几率最高,即使用户进行翻页,一般的也只翻到第三页,对于第三页之后的搜索结果页很少会被打开。
以上就是整个的搜索引擎工作原理,用户搜索一次要经过中间很多工作才最终看到搜索结果,这看似要耗费很多时间,但是搜索引擎讲究的除了搜索结果的全面性(召回率)、准确率外,就是效率,对用户来说搜索引擎的快慢直接决定了用户是否会重复使用这个搜索引擎。
为了提高搜索的效率,搜索引擎会使用缓存机制,将用户搜索最多的搜索词及搜索语句对应的倒排索引缓存起来,这样就不需要经过以上的多个步骤了,用户在输入搜索词后,搜索引擎会先到缓存中获取结果,如果缓存中获取不到结果则再到索引中获取。所以对于搜索引擎来说,以上介绍的搜索查询过程基本上都是瞬间完成的。
用于评价和改善搜索引擎及搜索结果的好坏的三个参考指标有:召回率、准确率和效率。召回率的高低在于网络爬虫抓取网页链接的广度和深度、关键词词典的丰富度;准确率在于分词的质量、倒排索引的质量、网页的质量以及对用户搜索意图的理解。而效率则是搜索引擎处理搜索的过程及返回搜索结果的用时长短,主要取决于分词的效率、倒排索引的大小、对搜索结果排序的用时。
评价一个网页质量的高低在技术上主要是看这个网页出链数和入链数,网页出链数高表明该网页中存在大量的外部链接,有聚合网页的作用,比如常用的导航网站的首页;而网页的入链数高,则说明这个网页所链接的次数多,也就是受到很多网站的引用。Page rank算法正是基于网页的入链数和出链数的一种评价网页质量的模型算法。
用户在使用搜索引擎的过程中,搜索引擎会将用户的人口特征,包括性别、年龄、职业、受教育程度、行为习惯、兴趣爱好等通过用户的搜索关键词和搜索语句记录到搜索日志中,以用于对用户进行分析、给用户画像,这种对用户的分析画像对搜索引擎搜索结果准确度的改进有着很大的促进作用,同时也催生了个性化推荐。
与个性化推荐相比,搜索行为是用户的一种主动行为,而搜索结果对用户来说完全是单向的,也就是用户只能被动的接收搜索引擎给出的结果而不能做出任何的改变。
-----------------------
关注"商业科技创新生活",精彩每一天!
评论留言