光说不练是假把式,光练不说是傻把式,能说会练才是好把式。实践是检验真理的唯一标准,我们一起来玩搜索引擎吧。我们今天处在一个很好的时代,有很多无私的人在从事着一种叫做“开源工程”(Open Source)的伟大事业。这其中有一个组织,它叫作"The Apache Software Foundation",中文叫"阿帕奇软件基金会"(http://www.apache.org)。"阿帕奇软件基金会"最早只有一个项目,Apache HTTP Server,这件大杀器几乎一统互联网的HTTP Server江山。现在Apache推出的项目多达上百个,其中的几个就围绕着搜索引擎展开。它们是(按字母排序):
Hadoop: 分布式计算和存储平台,时髦一点,叫“云”框架。
Lucene: index builder,索引组件。
Mahout: 机器学习组件。
Nutch: 与Solr整合的带Crawler的完整的web搜索引擎。
Solr: 没有Crawler的企业级搜索引擎。
Tika: 文件格式转换组件。
(插些题目外话,如果你是在校的学生,想挣经验值,这里可是个大宝库。首先,从coding的角度来看这些项目的代码质量都非常高,是很好的学习范本。从design的角度看,这些项目的可以大大提高你的眼界,让你站在一个相对比较高的层次上来看软件设计和工程。最次,就算你只是学习如何构建,布署和维护这些系统,只要玩的还算可以,那找一份工作一定不是问题。从另一个方面来讲,我们应该感谢开源社区,如果有一天你发达了,请给帮助过你的开源社区捐一点钱。在这里还要鄙视一把Steve Jobs,自己当年也是穷人,曾经靠捡可乐罐和去寺庙里吃免费餐,现在发达了,还要穷学生们每年交99美元才能开发iPhone的应用软件。封闭的系统最终一定走向死亡。)
以后的文章我们都将基于这些实际的项目来展开,鄙人比较喜欢真练。我们会从,最基本的Lucene开始,到Solr,Nutch,Haoop和Mahout,构建一个完整的可以实际使用的搜索引擎。所以,大家如果有兴趣,可以先去Apache的网站上了解一下这些项目的情况。