开源搜索工具nutch和lucene有什么区别?


想做一个简单的搜索引擎,最近浏览了许多社区,发现Lucene和Nutch用的很多,而这两个我总感觉难以区分概念。

搜索 开源 lucene nutch

smile 11 years, 3 months ago

简介

我这里再添加另外一个hadoop来比较:

  1. Nutch是基于Lucene的,Lucene是提供全文文本搜索的开源函数库,Lucene为Nutch提供了文本索引和搜索的API。
  2. Hadoop起源于Nutch项目,最先是Nutch的一部分,是Nutch的分布式计算模块,后来分离出来,独立发展了。
  3. Nutch是一个系统的搜索框架,包括爬虫、索引、查询等,而Hadoop只是让Nutch可以以分布式的方式去工作(这也是Hadoop最先创建的起因)。 4.Lucene,Nutch,Hadoop都是采用Java语言开发的。

Nutch和Lucene的区别

  1. Nutch是基于Lucene的,即Nutch是在Lucene的基础上增加了网络爬虫(Crawler)和Searcher两个功能模块。
  2. Lucene不是一个应用软件,它实际上提供的是全文文本搜索的API;而Nutch是一个真正的完整的Web搜索应用程序。
  3. Lucene主要用来对站内信息源建立索引,而Nutch则不但包含Lucene的所有功能,而且增加了爬取网页和处理用户搜索查询请求的功能,具备一个商业搜索引擎,如谷歌搜索引擎的主要功能。

应该使用Lucene还是Nutch?

选择用Nutch还是Lucene的标准是看你是否需要抓取数据,简而言之,如果不需要则用Lucene,否则用Nutch。

  1. 如果你有本地数据源,不再需要抓取数据,应该使用Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面,在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API 建立索引。
  2. 如果你没有本地数据源或者数据源非常分散的情况下,需要抓取数据,应该使用Nutch。

Doug Cutting的原话

  1. Lucene其实是一个提供全文文本搜索的函数库,它不是一个应用软件。它提供很多API函数让你可以运用到各种实际应用程序中。
  2. Nutch是一个建立在Lucene核心之上的Web搜索的实现,它是一个真正的应用程序。也就是说,你可以直接下载下来拿过来用。它在Lucene的基础上加了网络爬虫(Crawler)和一些和Web相关的东东。其目的就是想从一个简单的站内索引和搜索推广到全球网络的搜索上,就像Google和Yahoo一样。
酱油党而已 answered 10 years, 7 months ago

Your Answer