Lucene,Nutch,Hadoop 之间有什么关系?
Posted mypods
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene,Nutch,Hadoop 之间有什么关系?相关的知识,希望对你有一定的参考价值。
1. Nutch是基于Lucene的,Lucene是提供全文文本搜索的开源函数库,Lucene为Nutch提供了文本索引和搜索的API。
2.Hadoop起源于Nutch项目,最先是Nutch的一部分,是Nutch的分布式计算模块,后来分离出来,独立发展了。3.Nutch是一个系统的搜索框架,包括爬虫、索引、查询等,而Hadoop只是让Nutch可以以分布式的方式去工作(这也是Hadoop最先创建的起因)。
4.Lucene,Nutch,Hadoop都是采用Java语言开发的。
NB的是,Lucene,Nutch,Hadoop 都由一个人--Doug Cutting创建,他是这三个项目的创始人,现在是Apache基金会主席。
如果你对他感兴趣,可以参考以下几个介绍:
http://www.programmer.com.cn/15929/
http://labs.chinamobile.com/groups/10216_12301
http://blogoscoped.com/archive/2004_05_28_index.html
以下参考信息来源于网上,供惨考:
1.明确以上关系后,我应该使用Lucene还是Nutch?
最简单的回答是:
1)如果你有本地数据源,不再需要抓取数据,应该使用Lucene。
常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面,在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API 建立索引。
2)如果你没有本地数据源或者数据源非常分散的情况下,需要抓取数据,应该使用Nutch。
2.Nutch和Lucene的区别
Nutch是基于Lucene的,即Nutch是在Lucene的基础上增加了网络爬虫(Crawler)和Searcher两个功能模块。
Lucene不是一个应用软件,它实际上提供的是全文文本搜索的API;而Nutch是一个真正的完整的Web搜索应用程序。
Lucene主要用来对站内信息源建立索引,而Nutch则不但包含Lucene的所有功能,而且增加了爬取网页和处理用户搜索查询请求的功能,具备一个商业搜索引擎,如谷歌搜索引擎的主要功能。
选择用Nutch还是Lucene的标准是看你是否需要抓取数据,如果不需要则用Lucene,否则用Nutch。
3.Doug Cutting的原话:
1)Lucene其实是一个提供全文文本搜索的函数库,它不是一个应用软件。它提供很多API函数让你可以运用到各种实际应用程序中。
2)Nutch是一个建立在Lucene核心之上的Web搜索的实现,它是一个真正的应用程序。也就是说,你可以直接下载下来拿过来用。它在Lucene的基础上加了网络爬虫(Crawler)和一些和Web相关的东东。其目的就是想从一个简单的站内索引和搜索推广到全球网络的搜索上,就像Google和Yahoo一样。
以上是关于Lucene,Nutch,Hadoop 之间有什么关系?的主要内容,如果未能解决你的问题,请参考以下文章
全文索引-lucene,solr,nutch,hadoop之nutch与hadoop