1、前面3个大佬很早之前就听过:
- lucene是一个文档索引、检索框架。
- solr是一个基于lucene的搜索服务,目的就是要搞一个搜索引擎,提供http服务,支持json、xml、csv、二进制流等格式的输入输出。
- nutch用于建立web搜索引擎,包括爬虫和全文搜索。
2、后面几个近几年很火,合称elk(没具体查什么时候出现的)
- elasticSearch:也是基于lucene的,搞索引、搜索和统计,据说实时统计方面比solr要厉害
- logstash主要是搜集,解析和转换日志,把各种格式转换成固定格式,方便es等软件去分析。
- Kibana主要用于展示,提供了图标、表格、地图等组件
3、总结一下就是:
1)nutch和logstash用来搞数据
nutch是做爬虫,从外部采集数据。
logstash是做日志采集转换,从内部采集日志做分析。
说到爬虫,现在用python很多吧,python下的urllib、requests、crawler,都是爬虫神器。
2)lucene/solr/es做索引和搜索
lucene是鼻祖,但是比较底层,所以在lucene之上,又有了solr和es,这几个东西都是做索引、搜索。
solr和elasticsearch的区别(网上查的):
- solr在索引的同时搜索,会很慢;不索引的时候搜索,则更快。
- solr支持的格式更多,上面已经说过了;es则只提供json
3)Kibana做展示
看起来是跟echarts、highcharts之类差不多的东西,不过他实际上不是像echarts一样的组件,而是一个跟es配套的完整系统,包括了搜索、统计、监控的界面,甚至一些开发工具。搭建了elk之后,数据直接就可以在这里进行搜索和统计,而不是自己再开发一个前后台来展示。
4、划分
1)从用途上来划分,从下至上可以分为采集层、服务层、展示层
2)从框架的结合度上来说,可以分为两派
- nutch和solr是一派,代表了老牌搜索
- Es、logstash、Kibana是一派,简称elk,代表了新的潮流
- nutch针对solr做了优化,nutch采集的东西,solr基本可以直接用
- elk就不用说了。。从elk这个简称就知道这三个东西浑然天成,紧密结合
- 不过万事无绝对,具体是还要看你的应用场景