最近因工作原因,和ES(Elasticsearch)接触的比较多;ES之前了解过,不怎么熟悉,故打算系统学习之。
按照自己的学习惯例,一是了解主要概念,二是动手安装一遍。
故,本文大纲为:
1. 概念理解:
1) ES是什么?
2) ES发展史
3) ES市场成熟度
2. 安装部署
1) Linux下如何安装
2) Docker方式如何安装
Contents:
一、ES概念理解:
1. ES是什么(Elasticsearch)?
Elasticsearch 是由 Elastic 公司创建。它的代码位于 GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search Engine。
目前,Elasticsearch 是一个免费及开放(free and open)的项目。
Elastic 公司也拥有 Logstash 及 Kibana 开源项目,三个项目形成了 ELK 软件栈,形成了一个强大的生态圈。其中:
1. Logstash 负责数据的采集,处理(丰富数据,数据转换等);
2. Kibana 负责数据展示,分析,管理,监督及应用;
3. Elasticsearch 处于最核心的位置,它可以帮对数据进行快速地搜索及分析。

Elasticsearch是一个基于Lucene的一个开源的高扩展的分布式全文检索引擎,基于RESTful web接口,隐藏了Luncee的复杂性,从而让全文搜索变得简单;可近乎实时的存储、检索数据,可扩展性强,可处理PB级别的数据。
理解ES的关键在于理解lucene的基本原理:
Lucene是一种高性能、可伸缩的信息搜索(IR)库,在2000年开源,最初由鼎鼎大名的Doug Cutting开发,是基于Java实现的高性能的开源项目。Lucene采用了基于倒排表的设计原理,可以非常高效地实现文本查找,在底层采用了分段的存储模式,使它在读写时几乎完全避免了锁的出现,大大提升了读写性能。
关于lucene的原理,可参见如下链接,这里不再赘述:
https://www.jianshu.com/p/28fb017be7a7
官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
Elasticsearch以上大致了解了ES是什么?
接下来再说一下ES的发展史,了解其发展史,可帮助我们知道所以然和不然。
4. ES发展史
Elasticsearch是一个基于 Apache Lucene (TM)的开源搜索引擎。无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
在 1999 年,Doug Cutting 创建了一个叫做 Lucene 的开源项目:
1. 一个完全用 Java 编写的搜索引擎库
2. 截止2005年,是一个顶级的 Apache 开源项目
3. 提供强大的全文搜索功能
但Lucene 只是一个库,本身并不提供高可用性及分布式部署。想要发挥其强大的作用,需使用 Java 并要将其集成到应用中。而且Lucene 非常复杂,需要深入的了解检索相关知识来理解它是如何工作的,上手比较困难。
大家这里可以类比内存溢出和释放来理解。
在 2004 年, Shay Banon也就是现在 Elastic 的 CEO,开发了一个叫做 Compass 的开源项目:
1. 构建于 Lucence 之上
2. 目的是使得 Lucene 搜索更容易集成到 Java 应用中去
3. 可扩展性变得尤为重要
在 2010 年,Shay 完全重新编写了 Compass 以实现如下的两个目的:
1. 设计之初,就使用分布式部署设计
2. 可方便地使用其它的语言进行对接调用
Shay 最终把这个项目称之为 Elasticsearch,并于2010年10月发布与 github 上。
不过,Elasticsearch 不仅仅是 Lucene 和全文搜索引擎,它还提供:
1. 分布式的实时文件存储,每个字段都被索引并可被搜索
2. 实时分析的分布式搜索引擎
3. 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据
上述功能

本文详细介绍了Elasticsearch的基础概念,包括其起源、与Lucene的关系、市场认可度,以及通过Linux部署的步骤,包括创建用户、配置、系统参数调整和软件启动。后续还会涉及设置密码和安装Kibana的过程。
最低0.47元/天 解锁文章
929

被折叠的 条评论
为什么被折叠?



