Elasticsearch实战与原理解析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Elasticsearch简介

Elasticsearch是一个分布式、可扩展、近实时的高性能搜索与数据分析引擎。

Elasticsearch提供了搜集、分析、存储数据三大功能,其主要特点有:分布式、零配置、易装易用、自动发现、索引自动分片、索引副本机制、RESTful风格接口、多数据源和自动搜索负载等。

Elasticsearch并非从零起步,而是站在巨人的肩膀上。Elasticsearch基于Java编写,其内部使用Lucene做索引与搜索。通过进一步封装Lucene,向开发人员屏蔽了Lucene的复杂性。开发人员无须深入了解检索的相关知识来理解它是如何工作的,只需使用一套简单一致的RESTful API即可,从此全文搜索变得简单。

除此之外,Elasticsearch还解决了检索相关数据、返回统计结果、响应速度等相关的问题。因此,Elasticsearch能做到分布式环境下的实时文档存储和实时分析搜索。实时存储的文档,每个字段都可以被索引与搜索。

最令人惊喜的是,Elasticsearch能胜任上成百上千个服务节点的分布式扩展,支持PB级别的结构化或者非结构化海量数据的处理。

2019年4月10日,Elasticsearch发布了7.0版本。该版本的重要特性包含引入内存断路器、引入Elasticsearch的全新集群协调层——Zen2、支持更快的前k个查询、引入Function score 2.0等。

其中内存断路器可以更精准地检测出无法处理的请求,并防止它们使单个节点不稳定;Zen2是Elasticsearch的全新集群协调层,提高了可靠性、性能和用户体验,使Elasticsearch变得更快、更安全,并更易于使用。