ElasticSearch概述
 
  Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检  
 
 
  
  索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用  
 
 
  
  Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful  
 
 
  
  API来隐藏Lucene的复杂性,从而让全文搜索变得简单。  
 
 
  
  据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月,ElasticSearch已超过Solr等,成  
 
 
  
  为排名第一的搜索引擎类应用。 
 
 
 
历史
 
  多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去  
 
 
  
  了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene。  
 
 
  
  直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜  
 
 
  
  索功能。他发布了他的第一个开源项目,叫做“Compass”。  
 
 
  
  后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时  
 
 
  
  的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做  
 
 
  
  Elasticsearch。  
 
 
  
  第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代  
 
 
  
  码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功  
 
 
  
  能,不过Elasticsearch将永远开源且对所有人可用。  
 
 
  
  Shay的妻子依旧等待着她的食谱搜索…… 
 
 
  
  现在我们就知道了 elasticsearch 重要性! 
 
 
 谁在使用
1、维基百科,类似百度百科,全文检索,高亮,搜索推荐/2 (权重,百度!)
 
   2、The Guardian(国外新闻网站),类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+社交  
  
 
   
   网络数据(对某某新闻的相关看法),数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众  
  
 
   
   反馈(好,坏,热门,垃圾,鄙视,崇拜)  
  
 
   
   3、Stack Overflflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和  
  
 
   
   回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应  
  
 
   
   的答案  
  
 
   
   4、GitHub(开源代码管理),搜索上千亿行代码  
  
 
   
   5、电商网站,检索商品  
  
 
   
   6、日志数据分析,logstash采集日志,ES进行复杂的数据分析,ELK技术,  
  
 
   
   elasticsearch+logstash+kibana  
  
 
   
   7、商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户,比如  
  
 
   
   说订阅牙膏的监控,如果高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买。  
  
 
   
   8、BI系统,商业智能,Business Intelligence。比如说有个大型商场集团,BI,分析一下某某区域最近  
  
 
   
   3年的用户消费金额的趋势以及用户群体的组成构成,产出相关的数张报表,**区,最近3年,每年消费  
  
 
   
   金额呈现100%的增长,而且用户群体85%是高级白领,开一个新商场。ES执行数据分析和挖掘,  
  
 
   
   Kibana进行数据可视化  
  
 
   
   9、国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析  
  
 
   
   (ES热门  
  
 
   
   的一个使用场景) 
  
 
  
Elasticsearch 和 Solr 比较(货比三家)
 



ElasticSearch vs Solr 总结
 
 1、es基本是开箱即用(解压就可以用 ! ),非常简单。Solr安装略微复杂一丢丢!  
 
 
 2、Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能。  
 
 
 3、Solr 支持更多格式的数据,比如JSON、XML、CSV,而 Elasticsearch 仅支持json文件格式。  
 
 
 4、Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提  
 
 
 供,例如图形化界面需要kibana友好支撑~!  
 
 
 5、Solr 查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;  
 
 
 ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。  
 
 
 Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。  
 
 
 6、Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而 Elasticsearch相对开发维护者  
 
 
 较少,更新太快,学习使用成本较高。(趋势!) 
 
结尾
本文部分素材来自:Bilibili:狂神说Java 公众号:狂神说
来源:oschina
链接:https://my.oschina.net/u/4257499/blog/4463381