5.搜索之路——solr与lucene和nutch关系
搜索引擎所涉及到的技术包括数据结构、数据分析、数据处理、数据存储及搜索等,这些技术统称为数据检索(Information retrieval, IR)。搜索引擎的种类众多,用途各异.
lucene
apache lucene是apache下一个著名的开源搜索引擎内核,基于Java技术,处理索引,拼写检查,点击高亮和其他分析,分词等技术。Lucene并不关心数据源、数据格式、甚至数据的语言,Lucene更不会关心搜索的界面会是怎样,这些工作都是由基于Lucene的程序来完成,因此Lucene使用于几乎所有以文本内容为主的数据检索功能,全球成千上万、类型各异、数据规模从少量到海量的应用与网站的成功案例
solr
Lucene主要实现索引和查询的核心功能及API,但并不是一个完整的产品,而Solr实现了一些常用扩展并提供基于HTTP的Web服务,并且提供灵活的Schema配置、多核心支持、面搜索(Faceted Search)等。对于不是以Java为主要开发语言的项目来说,Solr可以非常快速、有效地集成搜索服务
Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。 Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word ,PDF 等)的处理。而且Solr 具有高度的可扩展,支持分布搜索和索引的复制。
Solr 底层的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。需要注意的是Solr 并不是简单的对Lucene 进行封装,它所提供的大部分功能都区别于Lucene 。
solr则是基于lucene的搜索界面。提供XML/HTTP 和JSON/Python/RubyAPI,提供搜索入口,点击高亮,缓存,备份和管理界面。
nutch
nutch和solr原来都是lucene下的子项目。但后来nutch独立成为独立项目。nutch是2004年由俄勒冈州立大学开源实验室模仿google搜索引擎创立的开源搜索引擎,后归于apache旗下。nutch主要完成抓取,提取内容等工作。
hadoop
hadoop原来是nutch下的分布式任务子项目,现在也成为apache下的顶级项目。nutch可以利用hadoop进行分布式多任务抓取和分析存储工作。
所以,lucene,nutch,solr,hadoop一起工作,是能完成一个中型的搜索引擎工作的。