文章目录
ElasticSearch 初级学习
简述
- 本文为Es的基础学习篇,主要内容是对《Elasticsearch服务器开发(第2版)》书籍的学习总结,本文适合Es初学者
- Es学习书籍资源地址:https://download.csdn.net/download/weixin_32820639/12740084
第一章 Elasticsearch集群入门
1.1 Elasticsearch基础篇
1.1.1 数据架构的主要概念
- 1.索引_index
- index是对数据的一个逻辑存储,可以把它看成关系型数据库的表(对于比较老版本的Es,还存在index,type;这种情况下,可以把index看做是库,type看做是表,不过Es已经开始摒弃type的存在了)
- index是为了快速的全文检索而存在的,并不存储原始数据;Es是内部支持集群模式的,可以将index放在一个节点或分散在多个节点中,一般在设置index的时候会定义分片、副本个数(1.1.2节介绍)
- 2.文档_documtn
- 存储在Es中的主要实体叫文档(document),类比数据库可以将文档对比为库中的一条记录。
- document与mongo类似,都可以拥有不同的数据结构,但是Es要求相同字段的类型必须相同(未设置mapping的情况下,Es存在动态规划识别存储字段的类型),不过建议在创建index的时候设定好字段的类型
- 3.文档类型_type(淘汰)
- 关于文档类型不做描述,因为已经摒弃类型的存在了
- 4.映射_mapping
- mapping用来存储文档中字段的类型,每个index都有自己的映射mapping
- mapping必然存在,不管我们是否设置(我们没有设置的情况下,Es会自己识别),因为文档需要根据字段的类型进行不同的检索放射
1.1.2 服务的主要概念
- 1.节点与集群(node)
- Es可以作为单节点的搜索服务器,但为了支持大型数据接,实现容错与高可用,Es原生也支持集群模式
- 分片(shard)
- 存在的意义:当存储大量文档时,会出现内存、磁盘等相关单服务硬件条件的限制,导致无法快速的相应请求,在这种情况下有了分片的存在
- 作用:分片可以将数据分为较小的数据集(shard),每个分片放在不同的节点上,当查询单个数据时,可以快速定位到哪个分片,然后返回结果。在分片上的处理效率时远高于所有文档放在一起的数据集。
- 副本(replica shard)
- 作用:提升服务吞吐量、查询效率、实现服务高可用
- 原理:一个副本是对一个shard的复制,每个shard可以存在0个或多个副本。
- 提升吞吐量:在某种情况下,查询不仅可以通过主分片进行检索,也可以通过副本进行检索,以提升查询效率
- 服务高可用:当拥有A分片的节点挂了后,其他节点必然会有一份A分片的副本,这是es会重新规划分片与副本,使得服务依旧可用。
- 4.光速之门
- Es集群模式下,集群的状态是由光速之门控制。默认情况下每个节点都会存储这些信息。我们在第7章节中详解
1.2 安装Elasticsearch与kibana
- 安装教程清查看本人博客:Es与kibana安装教程
1.3 常用REST API,操作示例
- 官网api学习地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/multi-index.html
- 看大家需要,如果大家有需要写一写api案列,可以在评论中提出,我在补充,这里我就不具体写案例了