正文
Gabriel Weinberg并不是创业新兵。在开始ddg项目之前,他开过不少家公司,做了好几个产品,其中一个算是成功,以1000万美金的价格被另外一家公司并购,其他的都失败了。卖掉公司之后,他希望下一个产品做一个自己喜欢的方向,可以一直做下去。什么是自己喜欢的呢?他自己也不知道,于是干脆一个领域一个领域做起来试试看,不喜欢就放弃。就这样又试了将近两年,最终他走到了搜索引擎这条路上。
此时已经到了2008年,如前所述,那绝对不是一个做搜索引擎的好时代。我清楚的知道这些,因为当时我也在做搜索引擎,只不过我们是在做一个搜索云服务系统,不是通用搜索。即使这样也相当不容易,这是另外的故事,有机会再讲。
Gabriel决定一个人开始做一个搜索引擎。按照Google这种“索引全球信息”的模式做,那当然不可能,按照那种模式,他自己卖掉上家公司的1000万美元都扔进去也未必够启动项目。于是他决定从一个简单的模式开始,即利用提供搜索API的产品,聚合他们的站内搜索结果,重新排序呈现到一个页面上。严格来说这算不上一个真正的搜索引擎,这种做法局限性很大,除了内容源有限之外,从每个服务API拿回数据拼接页面的过程很慢,产品体验也不好。不过它总算是个开始,之后他开始用一系列开源软件搭建自己的爬虫系统,建立自己的索引,不再单纯依靠别人的搜索结果拼接。这个过程并不是那么复杂,开源工具Apache Solr就能很好的满足需求。尤其是ddg只面向英文市场,没有搜索分词的困难,又只面对有限的搜索源,不会遇到索引量大规模膨胀的问题,总体投资可控。这时候的ddg像是一个简单开源软件拼接起来的工具,它需要很多人力去精心调配各种结果,收集各种搜索源,至于搜索技术本身,在这个阶段完全不做任何修改的开源软件都足够用了。
除了搜索页面,ddg还在力推Instant Answers这个概念,它指的是在搜索结果页面上直接显示答案。Google早在2007年就开始推广搜索产品onebox,开始在标准搜索结果页面上展示一些专有内容,比如电影,书籍,购物等等。今天这些都已经是大家都熟知的搜索特性了,但是在10年前,这仍然是一个新概念。如何准确的命中用户搜索结果,在onebox中展示,这需要复杂的算法和大量历史搜索数据做为基础,无论在数据积累还是技术上,这都是一个挑战。ddg的做法相比Google有点可笑,它干脆抓了一堆常用的内容和关键词,直接存到了数据库里面。这种解决方案和他们处理搜索本身一样,它不能称之为一个搜索引擎,但是勉强能用。
2008年9月,ddg正式发布。做为当时第一批用户的我,用过之后的感受是:“这玩意也能用?”然后默默关掉了窗口。尽管在hacker news的讨论上,创始人Gabriel一次又一次的表示“你坚持用一周,肯定会喜欢它”。我不知道那个时候什么人会坚持用一周,至少我是没能坚持下去。
不过Gabriel倒是不在乎大家没能坚持用下去,他仍然继续优化他的产品。尽管他走的和Google是完全相反的道路。Google的做法是首先订好算法和框架,然后尽可能让机器去干活。比如,Google一开始就确定了根据链接关系来确定页面权重的模式,设计好Pagerank算法,再实现算法,之后就是程序按照算法顺着页面之间的链接关系一层层把内容抓回来,建立索引,用户输入关键词,就在索引中命中关键词,按照Pagerank算法排序,把结果呈现给用户即可。这个过程中人是不参与的,人的工作集中在优化算法和修补漏洞上。Google始终在骄傲于“算法决定搜索结果,人不干涉它”。
ddg走的是完全相反的道路,人挑选内容源,人决定哪些更重要,应该放在数据库里,甚至社区可以贡献内容,贡献Instant Answers结果…一切都是人在做决策,ddg最多的代码是perl和javascript完成的,这足以说明了他们几乎不去触碰开源的搜索系统核心部分,只是用一系列的脚本把他们认为重要的结果塞到索引库里,以及把一些他们觉得是spam的内容农场从索引库里挪出去。毕竟,ddg也从来没有“索引全球信息”这么宏大的梦想。