什么是ElasticSearch?
Elaticsearch,简称es,es是一个开源的高扩展的分布式全文检索引擎。
Elaticsearch可以近乎实时的存储、检索数据。
Elaticsearch的扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
Elaticsearch使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能。
Elaticsearch的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
ElasticSearch的使用案例
2013年初,GitHub抛弃了Solr,采用ElasticSearch来做PB级的搜索。GitHub使用ElasticSearch搜索20TB的数据,包括13亿的文件和1300亿行代码。
维基百科启动以ElasticSearch为基础的核心搜索架构。
SoundCloud使用ElasticSearch为1.8亿用户提供即使而准确的音乐搜索服务。
百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据以及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或者业务层面异常。目前覆盖百度内部的20多个业务线,单集群最大100台机器,200个ES节点,每天导入30TB+数据。
新浪使用Es分析处理32亿条实时日志。
阿里使用Es构建挖财自己的日志采集和分析体系。
ElasticSearch对比Solr
Solr利用Zookeeper进行分布式管理,而Es自身带有分布式协调管理功能。
Solr支持更多格式的数据,而Es仅支持json文件格式。
Solr官方提供的功能更多,而Es本身更注重于核心功能,高级功能多数由第三方插件提供。
Solr在传统的搜索应用中表现好于Es,但是在处理实时搜索应用时效率明显低于Es。