ES系列一之:为什么要学ES
ES简介以及发展史
在2004年Shay Bano基于Lucene开发了Compass,在2010年他又重写了Compass取名Elasticsearch。
Elasticsearch:是一种智能搜索,分布式的搜索引擎,它可以帮助我们从海量数据中快速找到对应的搜索内容,还可以根据自身的要求高亮显示搜索到的内容。支持分布式,可水平扩展;它可以降低全文检索的学习曲线,同时支持多种编程语言调用。
相比较而言,Lucene的特点主要是:(1)它是基于java语言开发的搜索引擎,只能基于java语言开发。(2)它的类库的学习成本有点高,并且它并不支持水平扩展。
两者进行对比,ES的竞争优势就凸显出来,
(1)它是分布式的,Lucene不是分布式的。
(2)它是可扩展的,当数据量变大时,可以水平扩展多个节点。
(3)ES的API更简单,spring中的SpringDataElasticsearch整合了Elasticsearch的接口,使得开发更加简单。
(4)它的底层是基于Lucene的,隐藏了Lucene的复杂性。
(5)ELK的组合可以提供更加强大的功能
ELK简介
ELK是三个开源软件的缩写,分别是Elasticsearch、Logstash、Kibana,都是开源的。
Elasticsearch:不用多说,它是一个分布式的搜索引擎,它在其中提供的主要功能是,搜索、分析和存储数据的三大功能。
Logstash:主要是用来日志手机、分析以及过滤的,它支持大数据的方式获取,是一个日志搜集系统。
Kibana:它是数据可视化的分析,他提供了很多图表的方式展示数据,是一个数据可视化的平台。
ES的使用场景
任何一个技术的诞生,都要有其使用的场景。ES作为优秀的分布式搜索引擎,国内外的很多大厂都在使用ES,包括滴滴、今日头条、小米、360完全等。国内外的云计算巨头阿里、Google、微软等也在云平台上提供了ES的托管服务。
在淘宝的搜索、喜好推荐等一些功能上就使用了ES。
GIthub的仓库搜索也使用了ES。
还有滴滴打车的附近车辆定位等一些功能,应该也使用了ES。
所以Elasticsearch的还是很值得我们去学习的。