一、 初识搜索引擎
1. 搜索引擎简史
提及搜索引擎,大家脑海中就会浮现起国内的百度和国外的Google,我们想要查找什么资料,直接在搜索框中输入关键字,点击搜索按钮,之后就会展现搜索结果。
其实这只是搜索引擎的一部分,我们使用微博搜索某个明星,使用淘宝搜索商品,使用豆瓣搜索一本书,都是搜索引擎。这些搜索引擎因为太常用,我们反而没有意识到。
搜索引擎本质上是一种信息获取方式。
搜索引擎主要经历了:分类目录、相关性搜索、高质量搜索、个性化搜索四个阶段。
在搜索引擎诞生前,我们使用分类目录来获取信息。Yahoo!和国内hao123是分类目录的代表。当时信息相对较少,通过人工整理,把属于各个类别的高质量网站罗列出来,比如:按照财经类、新闻类、体育类、游戏类等项目进行整理,用户可以通过分类目录来查找需要的信息。
但一个页面的展示空间有限,分类目录也只能收录少数的网站,绝大多数网站都无法被收录,而那些没有被收录的信息,可能正是大家需要的。
有需求,就有商机,搜索引擎顺势而生。
最早的搜索引擎,通过查找用户输入的关键词与网页信息的匹配程度,也就是计算两者的相关性,展示网页列表,至于如何计算匹配程度,会在后文讲解。
相比分类目录,这种方式可以收录大量的网页,并按照用户查询的关键词和网页内容的匹配程度进行排序。
但这种方式有个巨大的问题:只考虑了相关性,没有考虑网页的质量。网页可以通过大量罗列跟内容无关的关键词,来提高与关键词的相关性。
比如:一家做教育的网站,可能会罗列明星、宠物、新闻甚至色情等高流量词语,这种“强行蹭流量”的方式,造成的后果就是搜索结果质量并不好。
解决这个问题的是Google,Google假设网页的链接越多,网站质量越高。利用网页之间的链接数量来确定网页质量,一个网页的链接数量越多,说明在网页在整个互联网中质量越高,Google的核心算法,也会在后文讲述。
发展到现在,搜索引擎不仅需要解决相关性和质量的问题,还要更多考虑用户的真实需求,比如:同样输入“苹果”,年轻人可能想的是手机,另外一些人想到的是水果。这就需要更加复杂的算法和程序了。
二、什么是好的搜索引擎
从分类目录、相关性搜索、高质量搜索、个性化搜索,我们可以从搜索引擎的发展阶段看出,搜索引擎越来越复杂,用户体验也更好了。
那么,如果判断一个搜索引擎好不好呢?
主要有三个评价标准:
1. 好的搜索引擎要快
速度是用户对搜索引擎的第一个印象。
当用户搜索一件商品,几十秒还没有搜索到,他可能去干其他事情了,就直接放弃购买了!商用搜索引擎的查询速度要达到毫秒级,一眨眼的功夫,搜索结果就出来了,用户体验就很好。
影响搜索速度的因素有很多,索引是最关键的因素之一,关于索引,会在下一节详细介绍。
2. 要查的准
当用户翻了3页还找不到想要的内容,干脆就不找了。
影响查询准确率的因素同样有很多,主要有下面这三个:
- 搜索引擎本身存储的信息要全,对于百度等商用搜索引擎,这就要求爬虫能够爬取全网内容。
- 关键词和网页内容的相关性要高,用户搜索手机,结果有很多单反相机,就不太好了。
- 网页信息质量要高,Google发明的PageRank算法很巧妙地解决了这个问题。
3. 搜索引擎要具有稳定性
这也是用户对大多数产品的要求,给用户一个合理的预期,用户才能够信任这款产品,三天两头不能用了,体验就差极了。
搜索引擎是怎么工作的?
那么,搜索引擎到底是如何工作的呢?
一个最基本的搜索引擎主要分为:信息获取、信息处理、信息展示三个模块。
巧妇难为无米之炊,信息获取是整个系统的基石。对商用搜索引擎而言,要求爬虫能够爬取全网内容,关于爬虫,我们再上一章已经介绍过了,这里就不再赘述。对网站内部搜索引擎而言,也需要把信息汇总起来,比如:电商平台,就需要把所有的产品信息存储到一起。
信息处理主要是对原始数据清洗,存入数据库,这里最重要的一个环节就是构建索引,相当于给每一个内容添加目录,便于查找。
信息展示指搜索引擎根据用户的查询词(query)来进行数据库检索,将结果展示给用户,主要涉及到用户查询内容与网页内容的相关性分析、网页质量评价等技术。
虽然搜索引擎具体实现方式有差异,但所有的搜索服务都可以在这三个模块的基础上实现。