袁庭新老师ES系列08节|使⽤Kibana对索引库操作
前言
从这一章节开始,袁老师正式带领同学们来学习Elasticsearch的相关语法。首先我们对索引库的相关概念会进行探索,然后介绍如何使用Kibana对索引库进行操作。
一. 基本概念
1.节点(node)
一个节点是一个Elasticsearch的实例。
在服务器上启动Elasticsearch之后,就拥有了一个节点。如果在另一台服务器上启动Elasticsearch,这就是另一个节点。甚至可以通过启动多个Elasticsearch进程,在同一台服务器上拥有多个节点。
2.集群(cluster)
多个协同工作的Elasticsearch节点的集合被称为集群。
在多节点的集群上,同样的数据可以在多台服务器上传播,这有助于性能,这同样有助于稳定性,如果每个分片至少有一个副本分片,那么任何一个节点宕机后,Elasticsearch依然可以进行服务,返回所有数据。
但是它也有缺点:必须确定节点之间能够足够快速地通信,并且不会产生脑裂效应(集群的2个部分不能彼此交流,都认为对方宕机了)。
3.分片(shard)
索引可能会存储大量数据,这些数据可能超过单个节点的硬件限制。例如,十亿个文档的单个索引占用了1TB的磁盘空间,可能不适合单个节点的磁盘,或者可能太慢而无法单独满足来自单个节点的搜索请求。
为了解决此问题,Elasticsearch提供了将索引细分为多个碎片的功能。创建索引时,只需定义所需的分片数量即可。每个分片本身就是一个功能齐全且独立的“索引”,可以托管在群集中的任何节点上。
分片很重要,主要有两个原因:
它允许您水平分割/缩放内容量。
它允许您跨碎片(可能在多个节点上)分布和并行化操作,从而提高性能/吞吐量。
分片如何分布以及其文档如何聚合回到搜索请求中的机制完全由Elasticsearch管理,并且对您作为用户是透明的。
在随时可能发生故障的网络/云环境中非常有用,强烈建议您使用故障转移机制,以防碎片/节点因某种原因脱机或消失。为此,Elasticsearch允许您将索引分片的一个或多个副本制作为所谓的副本分片(简称副本)。
4.副本(replica)
分片处理允许用户推送超过单机容量的数据至Elasticsearch集群。副本则解决了访问压力过大时单机无法处理所有请求的问题。
分片可以是主分片,也可以是副本分片,其中副本分片是主分片的完整副本。副本分片用于搜索,或者是在原有的主分片丢失后成为新的主分片。
注意:可以在任何时候改变每个分片的副本分片的数量,因为副本分片总是可以被创建和移除的。这并不适用于索引划分为主分片的数量,在创建索引之前,必须决定主分片的数量。过少的分片将限制可扩展性,但是过多的分片会影响性能。默认设置的5份是一个不错的开始。
5.文档(document)
Elasticsearch是面向文档的,这意味着索引和搜索数据的最小单位是文档。在Elasticsearch中文档有几个重要的属性。
它是自我包含的。一篇文档同时包含字段和它们的取值。
它可以是层次的。文档中还包含新的文档,字段还可以包含其他字段和取值。例如,“location”字段可以同时包含“city”和“street“两个字段。
它拥有灵活的结构。文档不依赖于预先定义的模式。并非所有的文档都需要拥有相同的字段,它们不受限于同一个模式。
6.类型(type)
类型是文档的逻辑容器,类似于表格是行的容器。在不同的类型中,最好放入不同结构的文档。例如,可以用一个类型定义聚会时的分组,而另一个类型定义人们参加的活动。
7.索引(index)
索引是映射类型的容器。一个Elasticsearch索引是独立的大量的文档集合。每个索引存储在磁盘上的同组文件中,索引存储了所有映射类型的字段,还有一些设置。
8.映射(mapping)
所有文档在写入索引前都将被分析,用户可以设置一些参数,决定如何将输入文本分割为词条,哪些词条应该被过滤掉,或哪些附加处理有必要被调用(比如移除HTML标签)。这就是映射扮演的角色,存储分析链所需的所有信息。
Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。对比关系:
详细说明:

二. 索引基本操作
1.创建索引库
1.1 创建索引库语法
Elasticsearch采用RESTful风格API,因此其API就是一次HTTP请求,你可以用任何工具发起HTTP请求。
创建索引的请求格式:
请求方式: PUT
请求路径: /索引库名
请求参数: JSON格式
语法结构见下:
settings:就是索引库设置,其中可以定义索引库的各种属性,目前我们可以不设置,都走默认。
1.2 使用Kibana创建索引库
Kibana的控制台,可以对HTTP请求进行简化。相当于是省去了Elasticsearch的服务器地址。而且还有语法提示,非常便捷和舒服。
语法格式:
1.使用Kibana创建yx索引库。
2.在Kibana的Console窗口点击绿色按钮发送请求,响应结果见下。
2.查看索引库
GET请求可以帮我们查看索引信息,语法格式:
1.使用Kibana查询yx索引库。
2.响应结果见下。
3.删除索引库
删除索引使用DELETE请求。语法格式:
1.使用Kibana删除yx索引库。
2.响应结果见下。
三. 结语
本章节袁老师主要给同学们介绍了节点、集群、分片、副本、文档、类型、索引和映射等核心的概念。然后我们介绍了如何使用Kibana操作索引库,包括对索引库的创建、查看和删除。需要同学们能够熟练掌握索引库操作的基本语法。