Lucene系列介绍
Lucene是一套用于全文检索和搜索的开源程序库,由Apache软件基金会支持和提供。Lucene提供了一个简单、强大的应用程序接口,能够做全文索引和搜索,在Java开发环境里Lucene是一个成熟的免费开放源代码工具;就其本身而论,Lucene是现在并且是这几年,最受欢迎的免费Java资讯检索程序库。人们经常提到资讯检索程序库,就像是搜索引擎,但是不应该将资讯检索程序库与网页搜索引擎相混淆。
Lucene最初是由Doug Cutting(Wiki)所撰写的,是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后来在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。他贡献出Lucene的目标是为各种中小型应用程序提供全文检索功能。
Lucene官方首页:http://lucene.apache.org/
Lucene下载地址:http://www.apache.org/dyn/closer.cgi/lucene/java/
Lucene系列目录
- Apache Lucene 4.0.0 Documentation:
http://lucene.apache.org/core/4_0_0/index.html - Lucene 4.0 发布:http://www.cnblogs.com/bluepoint2009/archive/2012/10/30/lucene-40-released.html
- Lucene3.6:入门指南:http://www.cnblogs.com/bluepoint2009/archive/2012/09/25/introduction-to-lucene36.html
- Lucene:信息检索与全文检索:http://www.cnblogs.com/bluepoint2009/archive/2012/09/25/lucene-information-retrieval-and-fulltext-retrieval.html
- Lucene:分词器和索引文件:http://www.cnblogs.com/bluepoint2009/archive/2012/09/25/lucene-tokenizer-and-index-file.html
- Lucene:初体验:http://www.cnblogs.com/bluepoint2009/archive/2012/09/25/lucene-beginner.html
- Lucene:QueryParaser:http://www.cnblogs.com/bluepoint2009/archive/2012/10/07/lucene-QueryParser.html
- Lucene:IndexWriterConfig:http://www.cnblogs.com/bluepoint2009/archive/2012/10/08/Lucene-IndexWriterConfig.html
- Lucene:Field:http://www.cnblogs.com/bluepoint2009/archive/2012/10/08/lucene-field.html
- Lucene:Query:http://www.cnblogs.com/bluepoint2009/archive/2012/10/08/Lucene-query.html
- Lucene - Similarity:http://www.cnblogs.com/bluepoint2009/archive/2012/11/02/lucene-similarity.html
吃水不忘挖井人,介绍Doug Cutting大牛是十分有必要的。
最早,接触到搜索引擎,知道有个Nutch(开源搜索引擎),于是开始查看Nutch相关的资料,发现了Nutch的创始人Doug Cutting,随着项目的深入,发现Doug Cutting本人不仅是Nutch的创始人,还是Lucene(开源的全文检索包)项目的创始人,之后Doug Cutting加入Yahoo,2006年成立Hadoop项目组,随着云计算热,很多人都开始研究关心Hadoop。
Doug Cutting在信息检索(IR)领域有着极其丰富的理论和实践经验。他曾经发表过大量的信息检索方向的主题论文,也曾经任职于Excite、Apple、Grand Central以及Yahoo!等多家公司。在2004年,由于担心日益减少的网络搜索引擎可能对该行业带来新的商业垄断,他又创建了Nutch,即第一个开源的Web搜索引擎(http://lucene.appache.org/nutch);这个引擎主要被设计用来进行 抓取、索引和搜索数十亿计的频繁更新的Web页面。毋庸置疑,Lucene是Nutch的核心。Doug同时致力于Hadoop项目(http://hadoop.apache.org),该项目作为Nutch项目的扩展内容,通过映射/化简(map/reduce)架构向用户提供分布式存储和计算工具。
下面一段转自InfoQ中文站对Doug Cutting的专访,让大家对这个牛人有个了解,呵呵。
在2011年12月2日举办的Hadoop In China 2011大会上,Apache软件基金会主席Doug Cutting先生来到了中国,并做了有关开源和Hadoop的演讲。会前,InfoQ中文站对Doug Cutting先生进行了专访。
Doug是多个成功开源项目的创立者,包括Lucene、Nutch和Hadoop。Doug于2009年从Yahoo!加入Cloudera,当时他所在的团队构建并部署了生产环境的Hadoop存储和分析集群,完成关键任务的业务分析,他是团队的主要成员。Doug拥有斯坦福大学的学士学位,同时是Apache软件基金会董事会成员。
InfoQ:Doug先生,非常欢迎您来到中国,您能先做个简单的自我介绍吗?
Doug:我叫Doug Cutting,是一名软件开发人员,在硅谷工作多年。大概11年前,我开始做开源软件方面的工作。首先参与了Lucene搜索项目。后来,Lucene被带到了Apache软件基金会中,我就在其中从事开源工作了,那是10年前。此后,我开始了又一个项目——Nutch,这也是一个Web搜索技术;然后就是Hadoop,这个后来非常成功的项目。 过去5年左右,我一直在做Big Data和存储处理方面的工作。
InfoQ:在您看来,人们使用Hadoop遇到的最大障碍是什么?您能提供一些建议让大家克服这些障碍么?
Doug:教育问题,在我看来是最大的问题。 使用Hadoop,需要不同的思考和计算方式,现在也已经有了一些书籍和课程,能够帮大家克服这些问题。随着理解它的人越来越多,我相信传播得也会越来越快。是有一些技术上的障碍和社会层面上的障碍,不过这些问题解决起来更容易,因为技术和相关社区都在发展。但是首先人们要明白Hadoop背后的机制。
InfoQ:对于大规模应用来说,监控非常重要。说到监控运行Hadoop的应用,您能列举出最重要的三个监控指标吗?还有您选择这三个的原因?
Doug:Hadoop的目标是以低成本、高效率的方式来做事情。你的硬件使用率是一个很好的指标,比如CPU的使用率、磁盘的使用率等等,你有没有完全把资源的利用起来。
与其一起的,你还希望利用高效的算法,当然,这很难监控,需要在一开始就想清楚。一旦开始运行后,要保证所有的资源都能高效利用,有时候很困难,需要在分布式系统里的输入、输出、计算这三者之间取得平衡。这些是最底层要监控的东西。
当然,还有错误和失败等等,这些也是很重要的东西。分布式系统内的调试要更为困难。知道什么时间、哪里出了问题,此类报表对于寻找问题根源是很有帮助的。 同时,某些应用的特定报表也很重要,比如把某些运行进度报告给用户。
InfoQ:接下来是关于开源软件的问题:从技术角度看,您认为哪个开源项目将会成为下一个“超级巨星”?
Doug:我想HBase正在不断吸引更多眼球,它在变得越来越稳定、性能越来越高效。我对于HBase的进展非常兴奋,我想很多机构将来都会用到它,从中获得价值。
InfoQ:您有很多开源项目方面的经验,能否介绍下您如何激励大家参与开源项目、并为其不断做出贡献?
Doug:最重要的事情,是倾听其他人,试图理解他们为什么要做某些事情。我们每个人都很自然地把注意力放在自己的需要上。要想一起协作做某些事情,我们必须理解其他人的需求。所以,有礼貌地倾听、理解、接受其他人的需求,并试图找出大家可以一起工作的方式方法,这是开源项目中最重要的技能。
Doug Cutting先生在本次大会上的两个演讲也将在不久后在InfoQ中文站上发布,请大家保持关注。
被采访的视频,请访问优酷版本。