2010年12月17日 星期五

[轉發]谈搜索架构师的不同阶段 - 腾讯soso团队博客 - CSDN博客



谈搜索架构师的不同阶段 - 腾讯soso团队博客 - CSDN博客
http://blog.csdn.net/soso_blog/archive/2010/07/01/5706555.aspx

 /腾讯soso 乔建秀

 

    乔建秀,国内早期从事搜索引擎技术的专家,拥有十年的搜索经验。作为搜索首席架构师,2000-2007年在中搜在线工作。2007年以高端技术专家身份加入腾讯公司。自加入公司以来,全面负责网页搜索的后台技术架构的研发,直到20099soso网页搜索成功上线。目前任命网页搜索平台和公共平台的总监,负责搜索引擎新架构和公共平台的研发工作。

 

 

    搜索技术的应用越来越广,掌握搜索技术或者针对搜索技术有了解的人也越来越多。最近接触了不少搜索人才,从对搜索的了解程度来讲,大体分为几种不同的阶段。

    第一个阶段是使用开源的单机搜索系统(最常见的是lucene),在其之上加入brokerCache,在其之上在构造应用。这个阶段一般对lucene的工作原理以及基本的搜索原理会略有了解,甚至还是有不少看过lucene的源码的。这也是大多数人接触搜索引擎的最方便和最常见的方式。但是这种系统一般只适用于较少量数据(千万级),其并发性能一般也只能达到百万级。好处是开发周期短,这一类的人才在市场上也容易找到,再加上一些好的idea,简单的数据挖掘方法(分类、聚类、协同过滤、用户行为分析等)就可以很快做出原型系统,满足一些小公司的前期创业阶段的技术要求。

    第二个阶段是自行开发的垂直领域内的搜索,这个阶段一般数据量会达到上亿或者几亿,如果用开源系统,其性价比已经不能满足要求,需要的服务器会超出承受能力,所以就会进行自己开发搜索系统,这种系统大都是针对内存的系统。这个阶段的人才会对搜索引擎的原理有较深的理解,可以自行开发简单的搜索应用。这类人才有很多是从第一个阶段发展过来的,他们会对搜索的各个方面都有所了解,包括切词、索引的建立、更新、应用的搭建、broker系统、cache系统、简单的排序策略等等。对于大部分搜索系统来讲,这部分人才都可以完成对系统设计和开发。

前两个阶段,其数据来源一般也是定向的抓取,基于模板的内容分析抽取,对服务的稳定性要求也没有那么高,更新无法做到无缝更新。

    第三个阶段是针对网页搜索(通用搜索)的人才,这个阶段的人才比较少,针对整个网页搜索都有了解的人就更少了。主要集中于百度、谷歌、搜狗等大的搜索公司。

了解通用搜索的人主要集中于大型的搜索公司,有以下几个原因:一是其它公司很难有做网页搜索的实力,也就很难有这种工作经历。没有经历过这样的挑战就很难想像出其中的难度。二是即使有做过,但是很难拿到用户的反馈,而缺乏用户反馈数据,网页搜索引擎就象缺了一条腿。三是做网页搜索的人一般比较多,包括百度、谷歌等公司,大部分人也只能从事网页搜索中较小的一个部分,针对网页搜索整体了解和思考都是比较少的。

    这个阶段的人才会对通用搜索遇到的挑战有一定的解决能力。包括如何能够在有限的资源内做到尽快的返回用户的结果(性能指标),如何做到第一时间更新互联网的热点并且能够展示到用户面前(时新性指标),如何能够尽可能多的收录互联网的有用页面(覆盖率指标),如何能够把用户最感兴趣的结果放到最前面(相关性指标),还有很多用户可用性、以及显相关的指标。这些是评价通用搜索的最主要的指标,每个指标都会有很大的挑战。这个阶段的人才一般最少会对其中的部分指标有自己解决的办法。

    第四个阶段是对网页搜索系统的设计能力和架构能力都很强的人才,他们会针对搜索系统的除暴露给用户的表现部分有很深的理解和自己的解决方案外,还包括跨机房解决方案,基础存储运算在搜索中的应用,高可用和灵活性的相关性实验支持,高效灵活的数据挖掘平台、接口及解决方案,系统的高度可扩展性和柔性服务能力等。这类人才在市场上凤毛麟角,大家都在争取。

 

上述是从事搜索十余年总结的一点经验,欢迎大家一起探讨。


沒有留言:

張貼留言