搜索引擎依托于互联网,它是互联网网站和应用的入口。
1,搜索引擎技术的发展史
第一代:文本检索的一代
采用经典的信息检索模型,比如布尔模型、向量空间模型或概率模型,来计算用户查询关键词和网页文本内容的相关程度。并没有利用到网页之间的链接关系。
第二代:链接分析的一代
充分利用网页之间的链接关系,并深入挖掘和利用了网页链接所代表的含义。通常而言,网页链接代表一种推荐关系,所以通过链接分析可以在海量内容中找出重要的网页。这种重要性本质上是对网页流行程度的一种衡量。搜索引擎通过结合网页流行性和内容相似性来改善搜索质量。
Google率先提出PageRank链接分析技术并获得成功。
但是很多网站为了获得更高的搜索排名,针对链接分析算法提出了不少链接作弊方案,导致搜索质量下降。
第三代:用户中心的一代
目前的搜索引擎大多数都可以归入第三代,即以理解用户需求为核心。目前搜索引擎大都致力于解决如下问题:如何能够理解用户发出的某个很短小的查询词背后包含的真正需求。
目前搜索引擎做了很多技术方面的尝试,比如利用用户发送查询词时的时间和地理位置信息,利用用户过去发出的查询词及相应的点击记录等历史信息等技术手段。
2,搜索引擎的3个目标
更全:云存储,爬虫
更快:索引,索引压缩,云存储,爬虫,网页去重,缓存
更准:排序,链接分析,反作弊,用户研究,网页去重
3,搜索引擎的3个核心问题
用户真正的需求是什么:从用户角度出发,即使同一个关键词,不同用户的搜索目的是不同的
哪些信息是和用户需求真正相关的:从数据角度出发,从海量数据里面找到能够匹配用户需求的内容
哪些信息是用户可以信赖的:搜索本质上是找到能够满足用户需求的信息,尽管相关性是衡量信息是否满足用户需求的一个重要方面,但非全部,信息是否值得信赖是另外一个重要的衡量标准。
4,搜索引擎的技术架构
优秀的搜索引擎需要复杂的架构和算法,以此来支撑对海量数据的获取、存储、处理的能力,以及对用户查询的快速而准确地响应。
从架构层面,搜索引擎需要能够对百亿计的海量网页进行获取、存储、处理的能力,同时要保证搜索结果的质量。
搜索引擎后台计算系统:获取并存储海量的网页相关信息。
搜索引擎的信息来源于互联网网页,通过网络爬虫将整个互联网的信息获取到本地,因为互联网页面中有相当大比例的内容是完全相同或者近似重复的,“网页去重”模块会对此做出检测并去除重复内容。
搜索引擎对网页进行解析,抽取出网页主体内容,以及页面中包含指向其他页面的链接。网页内容通过“倒排索引”这种高效查询数据结构来保存,而网页之间的链接关系也会予以保存。将通过“链接分析”可以判断页面的相对重要性,对于为用户提供准确的搜索结果帮助很大。
搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果。Google等商业搜索引擎为此开发了一整套存储与云计算平台,使用数以万计的普通PC搭建了海量信息的可靠存储与计算架构,以此作为搜索引擎及其相关应用的基础支撑。优秀的云存储与云计算平台已经成为大型商业搜索引擎的核心竞争力。
搜索引擎前台计算系统:响应用户查询并实时地提供准确结果。
当搜索引擎接收到用户的查询词后,首先需要对查询词进行分析,希望能够结合查询词和用户信息来正确推导用户的真正意图。在此之后,首先在缓存中查找,搜索引擎的缓存系统存储了不同的查询意图对应的搜索结果,如果能够在缓存系统找到满足用户需求的信息,则可以直接将搜索结果返回给用户。如果保存在缓存中的信息无法满足用户需求,搜索引擎需要调用“网页排序”模块功能,根据用户的查询实时计算哪些网页是满足用户信息需求的,并排序输出作为搜索结果。而网页排序最重要的两个参考因素中,一个是内容相似性因素,即哪些网页是和用户查询密切相关的;另一个是网页重要性因素,即哪些网页是质量较好或相对重要的,这点往往可以通过链接分析的结果获得。
除以上之外,“反作弊”模块日益重要。