1、Elasticsearch是什么
elasticsearch是一款开源的分布式搜索、存储、分析引擎;它目前的时效为近实时性的。Solar也是顶级的开源搜索引擎,也是基于lucene;elasticsearch与Solar相比安装更加简单,对于一些复杂的搜索支持更好,在大数据量下,elasticsearch的性能更好,现在被很多公司大量的使用。
我们可以看到数据库搜索引擎排名已经很高了
2、Elasticsearch发展
2.1 Elasticsarch发展史
Lucene 是一个高性能的搜索引擎库,它提供索引数据和搜索数据的功能,内部非常复杂,elasticsearch利用了lucene的高性能,封装了它的复杂性,对外可以提供rest接口,不同语言的应用都可以调用。
轶事:
2004年,shay banon失业了,准备给他厨师老婆做一个食谱的搜索引擎,如果直接使用Lucene很难,所以他把使用lucene抽象了一下,并开源了,开发者可以直接在程序里使用compass来进行搜索,2010年的时候,它已经重构了compass,取名为elasticsearch,支持分布式和水平扩展。
2.2 Elasticsarch重要版本
Elastic的版本维护维护当前主要版本的最新次要版本,以及上一个主要版本的最新次要版本,例如7.10.2,7主版本,10为次要版本,2为修复bug的版本。它的具体的版本可以查看(https://www.elastic.co/cn/support/eol),elasticsearch主要版本特性如下:
在实际生产中推荐采用7.x,官方做了很多优化,性能更好,功能更强大。
3、Elasticsearch应用场景
Elastic公司围绕着elasticsearch构建一整套生态系统,适用了很多热门的使用场景
3.1 Elastic生态圈
2013年logstash被收购,同年kibana加入elastic公司,后续它陆续收购了beat、prealert(机器学习)等公司,将其纳入到elastic生态圈。
beats,轻量数据采集器,可收集文件、网络包等数据,它们安装在目标服务器作为代理,转发数据到logstash或elasticsearch上。
X-Pack,商业套件,提供了一些增值服务,有些组件也开源了。
3.2 使用场景
4、Elasticsearch整体架构
4.1 整体架构图
如上图所示,elasticsearch整体的功能划分:
-
restful api,表示提供rest风格的api来实现编程何管理
-
Transport, 网络传输模块,支持http,thrift等主流协议,默认tcp
-
Scripting,脚本语言,支持使用groovy、painless等脚本语言
-
3rd plugin,支持第三方插件
-
Index module 索引文档、search module,搜索文档
-
River,支持接入其它数据源
-
Jmx,监控
-
Discovery,服务发现模块<