浏览数量: 6 作者: 本站编辑 发布时间: 2022-05-20 来源: 本站
搜索引擎系统是最复杂的计算系统之一,当今主流搜索引擎服务商都是有财力、人力、技术雄厚的大公司。但即使有技术、人力、财力的保证,搜索引擎还是面临很多技术挑战。 搜索引擎诞生后的10多年中,技术已经得到长足的进步,我们今天看到的搜索结果质量与十几年前相比,已经好的多了,不过这还只是一个开始,搜索引擎必然还会有更多创新,提供更多更准确的内容。 总体来说,搜索引擎主要面临以下几方面的挑战。 1、页面抓取需要快而全面 互联网是一个动态的内容,网络每天有无数页面被更新创建,无数用户在网络上发布内容沟通联系,想要返回最有用的内容,搜索引擎就要抓取最新的页面,但是由于页面数量巨大,搜索引擎蜘蛛,每天更新一次数据库中的页面都需要花很长的时间,搜索引擎刚诞生时抓取更新的周期往往以月为单位计算,这也是谷歌在2003年以前,每个月进行一次大更新的原因。 现在主流的搜索引擎都已经能在几天之内更新重要页面了,高权重网站上的更常见,在极几小时甚至几分钟之内就会被收录,不过这种快速被收录和更新的情况也只局限于高权重网站,很多页面几个月不被重新抓取和更新也是常见的。 要返回最好的结果,搜索引擎必须抓取尽量全面的页面,这就需要解决很多技术问题,一些网站并不利于搜索引擎蜘蛛的爬行和抓取,诸如网站链接结构存在缺陷,大量使用flash 、JavaScript脚本,或者把内容放在用户必须登录以后才能访问的部分,都增大了搜索引擎抓取内容的难度。 2、海量数据存储 一些大型网站单是一个网站就有几百千万,甚至上亿个页面。可以想象网上所有网站的页面加起来是一个什么规模的数据量。 搜索引擎蜘蛛抓取页面后还必须有效的存储这些数据,且数据结构必须合理具备极高的扩展性,这对访问速度的要求也很高。除了页面数据,搜索引擎还需要储存页面之间的链接关系和大量历史数据,这样的数据量是用户无法想象的。 据估测百度有三四十万台服务器,谷歌有几十个数据中心上百万台服务器,这样大规模的数据储存储和访问必然存在很多技术挑战。 我们经常在搜索结果中看到排名会没有明显原因的上下波动,甚至可能刷新一下页面就会看到不同的排名,有的时候网站数据有可能就是这些情况,有时候与大规模的数据存储同步的技术难题有关。 3、索引处理快速有效具有扩展性 搜索引擎将页面数据抓取和存储后,还要进行索引处理,包括链接关系的计算正向索引,倒排索引,由于数据库中页面数量大进行PR值之类的迭代计算也是耗时费力的,要想提供相关业务及时的搜索结果,仅依靠抓取是没有用的,还必须进行大量的索引计算。 由于随时都有新数据新页面加入,所以处理也需要具备很好的扩展性,当数据不大时,上面说的抓取存储和索引计算都不是很大的难题,但当数据多到难以想象的海量时,即使最典型的科技巨头,也无法避免出现问题。 2020年谷歌已经发生了数次大规模索引库无法索引,新页面数据丢失之类的问题。 4、查询处理快速准确 查询是普通用户唯一能看到搜索引擎的工作步骤,用户在搜索框输入查询词点击搜索按钮后,通常不到一秒,搜索结果页面就会显示最相关、质量最高、最有用的信息,并且按照相关性、权威性排列,表面上看这一过程非常简单,实际上涉及了非常复杂的后台处理。 搜索引擎排序算法高度复杂,细节极为保密,且处于不断变化更新中。 在最后的查询阶段,另一个难题是速度,这考验了搜索引擎怎样在不到一秒的时间内从可能多达上亿个包含查询词的页面中,快速找到最合适的页面并计算排名。 5、准确判断用户的搜索意图 前4个挑战在现在的搜索引擎都已经能够比较好的应对,为进一步提高搜索结果质量,近几年搜索引擎非常关注准确判断用户搜索意图的问题。 不同用户搜索相同的查询词,很有可能是在寻找不同的东西。比如搜索苹果用户,到底是想了解水果、计算机还是电影。有的查询词本身就有歧义,比如搜索南京、苏州、火车,用户是想了解南京去苏州的火车票呢还是苏州去南京的火车票呢? 没有上下文,没有对用户个人搜索习惯的了解就无法判断,搜索引擎目前正在致力于基于对用户搜索习惯的了解,历史数据的积累,在语义搜索技术的基础上,判断搜索意图,理解文档真实意义,返回更相关的结果。 根据搜索引擎这几年透露的信息,人工智能的深度学习,在理解用户真实意图,理解文档主题方面发挥着越来越重要的作用,今后搜索引擎是否能达到人工智能的水平,能否真正了解用户查询的意义和目的,让我们拭目以待。
