搜索引擎系统面对的挑战

  • A+
所属分类:SEO搜索引擎优化

搜索引擎系统是最复杂的计算机系统之一,当今主流的搜索引擎服务商都是有财力、人力、技术的大公司,即使有技术、人力、财力的保障,搜索引擎系统还是面临很多技术挑战。搜索引擎诞生后的十多年中,技术已经得到了长足的进步,我们今天看到的搜索结果质量与十年前相比已经好得很多了,不过这只还是一个开始,搜索引擎必然还会有更多的创新,提供更多、更准确的内容。

 

总体来说,搜索引擎主要有以下几方面的挑战:

1、页面抓取需要快而全面

互联网是一个动态的内容网络,每天都有无数个页面被创建、更新,数以亿级的用户在网络上发布内容、沟通联系。要返回最有用的内容,搜索引擎就要抓取最新的页面,但是由于页面数量巨大,搜索引擎蜘蛛更新一次数据库中的页面需要花费很长时间,搜索引擎刚诞生时,这个抓取、更新周期往往是以月为单位计算。这也就是Google在2003年以前每个月有一次大更新的原因所在。

现在主流搜索引擎已经能在几天之内更新重要页面,权重高的网站上新页面几小时甚至几分钟内就能被收录。不过,这种快速收录和更新也只能局限于高权重的网站。很多页面几个月不被重新抓取和更新,也是常见的。

要返回最好的结果,搜索引擎也必须抓取尽量全面的页面,这就需要解决很多技术问题,例如一些网站对搜索引擎并不友好,诸如网站链接结构的缺陷、大量使用Flash、JavaScript脚本,或内容只针对登录用户访问,都增大了搜索引擎抓取内容的难度。

2、海量数据储存

大型网站单是一个网站就有百万、千万、亿级别的页面,可以想象网上所有网站的页面加起来是一个什么数据量,蜘蛛抓取页面后,还必须有效储存这些数据,数据结构必须合理,具备极高的扩展性,写入及访问速度要求也很高。

除了页面数据,搜索引擎还需要储存页面之间的链接关系及大量的历史数据,这样的数据量是用户无法想象的。估计百度有五六十万台以上服务器,Google有几十个数据中心,上百万台服务器,这样大规模的数据储存和访问必然存在很多技术挑战。

我们经常在搜索结果中看到,排名会没有明显原因而上下波动,甚至可能刷新下页面,就看到不同的排名,有的时候网站数据也可能丢失,这些都可能与大规模数据库存储、同步的技术难题有关。

3、索引处理快速有效,具可扩展性

搜索引擎将页面数据抓取和储存后,还要进行索引处理,包括链接关系的计算、正向索引、倒排索引等,由于数据库中页面数量大,进行PR之类的迭代计算也是耗时费力的,想要提供相关又及时的搜索结果,仅仅抓取没有用,还必须进行大量索引计算,由于随时都有新数据、新页面加入,因此索引处理也要具备很好的扩展性。

4、查询处理快速准确

查询是普通用户唯一看到的搜索引擎工作步骤,输入关键词点击“搜索”按钮后,在几秒内就会看到搜索结果。表面最简单的过程,实际上涉及非常复杂的后台处理,在最后的查询阶段,最重要的难点在于怎么在不到1秒内的时间内,快速从几十万、几百万、几千万包含搜索词的页面中,找到最合理、最相关的1000个页面,并且按照相关性、权威性排序。

5、判断用户意图及人工智能

前面4个挑战现在的搜索引擎都已经能够比较好的解决,但判断用户还处在初级阶段。不同用户搜索相同关键词,很可能是在寻找不同的东西。比如搜索“苹果”,用户到底是想了解苹果这个水果,还是苹果手机?电脑?没有上下文,没有对用户个人搜索习惯的了解,就完全无从判断。

搜索引擎目前正在致力于基于对用户搜索习惯的了解、历史数据的积累,以及语义搜索技术的基础上,判断搜索意图,理解文档真实意义,返回更相关的结果。今后搜索引擎要走的路还很长,能否达到人工智能水平,真正了解用户查询的意义和目的,让我们拭目以待把!

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: