Elasticsearch使用Java语言开发,使用Elastic开源协议,实时分布式开源的全文搜索和分析引擎。Elasticsearch通过RESTfulWeb服务接口访问,并使用JSON文档来存储数据。Elasticsearch使用 Java 作为开发语言,但却能够跨平台运行,可以使用者非常快速的探索大量的数据Elasticsearch由 Shay Banon 于2010年创建,当前的最新版本是2018年6月 13 日发布的6.3.0
Elasticsearch 官网
Elasticsearch 的官方网址是: https://www.elastic.co/products/elasticsearch Elasticsearch 的下载地址是: https://www.elastic.co/downloads/elasticsearch
Elasticsearch 背后的公司
Elasticsearch发布不久后就受到开发的持续关注,成为Github上最受欢迎的项目之一。
之后,一家主营Elasticsearch的公司成立了,它们一边提供商业支持一边开发新功能,但它们保证,Elasticsearch将永远开源且对所有人可用
Elasticsearch 的特性
1、安装方便:没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群
2、JSON:输入/输出格式为JSON,意味着不需要定义Schema,快捷方便
3、RESTful:基本所有操作 ( 索引、查询、甚至是配置 ) 都可以通过HTTP接口进行
4、分布式:节点对外表现对等(每个节点都可以用来做入口);加入节点自动均衡
5、多租户:可根据不同的用途分索引;可以同时操作多个索引
6、支持超大数据: 可以扩展到 PB 级的结构化和非结构化数据
7、Elasticsearch可以用来替代MongoDB和RavenDB等文档数据库
说了这么多,其实只有一个优点: 如果想要创建自己的搜索引擎,那么Elasticsearch是唯一的不可替代的方案,没有之一
Elasticsearch 优点
1、Elasticsearch 使用 Java 作为开发语言,所以可以运行在任何平台上 2、Elasticsearch 是实时的,换句话说,就是在添加了文档后就可以立刻搜索到刚刚添加的文档 3、Elasticsearch 是分布式的,可以轻松扩展并集成到任何大型组织中 4、通过使用 Elasticsearch 中的网关概念,轻松创建完整备份 5、与 Apache Solr 相比,Elasticsearch 中处理多租户非常容易 6、Elasticsearch 使用 JSON 对象作为响应,这是当下最流行的数据交换格式 7、Elasticsearch 几乎支持所有文档类型,但不能渲染的文本除外,例如二进制数据
Elasticsearch 缺点
1、与ApacheSolr不同,Elasticsearch在处理请求和响应数据方面不支持多种数据格式,也就是说只支持 JSON
Apache Solr 支持多种数据传输格式,比如 CSV,XML 和 JSON 格式
2、Elasticsearch也存在脑裂 (Split-Brain) 的情况,但发生的可能性很少
Split-Brain,中文一般翻译为 **脑裂**, 脑裂问题就是产生了两个 leader,导致集群行为不一致