# 9.1.1 Elasticsearch 简介及其发展历史

## 从开源到上市

* 2018年10月纽交所上市，Elastic Inc -开源软件/上市公司
* 当前市值超过50亿美金，开盘当天涨幅达94%
* Elasticsearch软件下载量，超3.5亿次
* 10万+的社区成员
* 7200+订阅用户，分布在100+国家
* 云服务平台的接入- Elastic，Amazon，阿里巴巴，腾讯

## Elasticsearch的诞生

* 2004年Shay Banon基于Lucene开发了Compass
* 2010年Shay Banon重写了Compass，取名Elasticsearch

![](/files/-Lo4_Z0tusUlgUxXAJSY)

### Lucene简介

* 基于Java语言开发的搜索引擎库类
* 创建于1999年，2005年成为Apache顶级开源项目
* Lucene具有高性能、易扩张的优点
* Lucene的局限性：
  * 只能基于Java语言开发
  * 类库的接口学习曲线陡峭
  * 原生并不支持水平扩展

### Elasticsearch的特性

* 近实时（Near Real Time）
* 分布式存储/搜索/分析引擎
* 支持多中方式集成接入
  * 多种编程语言的类库
  * RESTful API
  * JDBC & ODBC

### Elasticsearch的分布式架构

* 集群规模可以从单个扩展到数百个节点
* 高可用 & 水平扩展
  * 服务和数据的两个纬度
* 支持不同的节点类型
  * 支持 Hot & Warm架构

![](/files/-Lo4_Z0wwWn8su8VDMT1)

### Elasticsearch版本与升级

* 0.4：2010年2月第一次发布
* 1.0：2014年1月
* 2.0：2015年10月
* 5.0：2016年10月
* 6.0：2017年10月
* 7.0：2019年4月

#### 新特性5.X

* Lucene6.x，性能提升，默认打分机制从TF-IDF改为BM25
* 支持Ingest节点/Painless Scripting/Compltion suggested支持/原生的Java REST客户端
* Type标记成deprecad，支持了Keyword的类型
* 性能优化
  * 内部引擎移除了避免同一文档并发更新的竞争锁，带来15%\~20%的性能提升
  * Instant aggregation，支持分片上聚合的缓存
  * 新增了Profile API

#### 新特性6.X

* Lucene 7.X
* 新功能
  * 跨集群复制（CCR）
  * 索引生命周期管理
  * SQL的支持
* 更友好的升级及数据迁移
  * 在主要版本之间的迁移更为简化，体验升级
  * 全新的基于操作的数据复制框架，可加快数据恢复
* 性能优化
  * 有效存储稀疏字段的新方法，降低了存储成本
  * 在索引时进行排序，可加快排序的查询性能

#### 新特性7.X

* Lucene 8.0
* 重大改进 - 正式废除单个索引下多Type的支持
* 7.1 开始，Security功能免费使用
* ECK - Elasticsearch Operator on Kubernetes
* 新功能
  * New Cluster coordination
  * Feature - Complete High Level REST Client
  * Script Score Query
* 性能优化
  * 默认的Primary Shard数从5改为1，避免Over Sharding
  * 性能优化，更快的Top K


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.clay-wangzhi.com/9-elasticsearch/9.1-gai-shu/9.1.1-elasticsearch-jian-jie-ji-qi-fa-zhan-li-shi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
