solr与nutch的区别,及所对应的应用场景
solr与nutch的区别在于:solr是搜索引擎,主要用于建索引和搜索服务;而nutch是分布式爬虫系统,主要用于分布式采集数据源。两者所对应的应用场景是:solr可以作为搜索服务器使用,而nutch一般可用作为爬虫使用,负责抓取数据。
1.solr与nutch的区别
solr与nutch原来都是lucene下的子项目,nutch+solr可以搭建一个简单的搜索引擎,但后来nutch独立成为独立项目。
solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
nutch是Apache旗下的一个用Java实现的开源搜索引擎项目,自Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X和2.X,这两大分支最大的区别在于2.X对底层的数据存储进行了抽象以支持各种底层存储技术。
简单理解solr与nutch的区别就是:solr是搜索引擎,用于建索引和搜索服务;而nutch是分布式爬虫系统,用于爬取数据源。
2.solr与nutch对应的应用场景
solr是基于lucene的搜索界面,提供XML/HTTP 和 JSON/Python/Ruby API,提供搜索入口、点击高亮、缓存、备份和管理界面。因此,solr一般是作为搜索服务器进行应用。
而nutch是一个开源的、Java实现的搜索引擎,它提供了我们运行自己的搜索引擎所需的全部工具,一般可用作爬虫使用,负责抓取数据。在实际应用中,nutch爬虫生成索引导入到solr中进行查询。
延伸阅读
lucene是做什么的
lucene是一个做搜索用的类库,nutch和solr都是基于lucene的。它是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。它是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。
在Java开发环境里lucene是一个成熟的免费开源工具。就其本身而言,lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。