ES 学习之路-索引(index)的简单管理

时间:2024-04-13 11:36:50

在elasticsearch中索引(index)有名词和动词之分,在本文中我们简述的是名词索引(index),它有点像关系型数据中的数据库(database),我们在elasticsearch中创建一个索引, 就有点像在关系型数据中创建一个数据库,在数据库中我们有表(table),字段(fields);在elasticsearch中对应的就有类型(type)和属性(properties),mysql可以做分布式,可以做主从复制,表可以做分表,在elasticsearch中这些做起来要远比关系型数据简单,索引有分片(shards),有副本(replicas),下边我们就来讲解如何创建索引,修改,删除;注意, 这里所讲的都是单服务操作,集群将在后续记录

关系型数据库 elasticsearch
database index
table type
row(行)一条数据 文档

查看这边文档, 需要elasticsearch-head的支持,安装elasticsearch-head可以查看文章:https://blog.****.net/mjlfto/article/details/79772848

1.创建索引

ES 学习之路-索引(index)的简单管理
解说:
地址中test_index_04表示索引名称
settings:可以理解为设置数据属性。
number_of_shards:索引分片数,保存到该索引中的数据根据elasticsearch内部规则,分别保存到不同的分片中,需要注意的是分片数量一旦确定, 后边永远是无法更改的,除非删除索引从新创建
number_of_replicas:索引副本,每个分片都有自己副本,如果主分片坏掉了,可以从这些副本中选择一个作为主分片,这样可以实现高可用,不同于主分片,副本数量是可以后期调整的,调整方法后边讲解
mappings:映射;我的理解是数据库表的管理集,可以对照理解为关系型数据中schema,它维护这索引中的所有类型(type)
blog:一个确切的类型(type)名
properties:管理类型属性的集合
title:一个确切的属性,像是表(table)中的字段
type:属性类型
index:是否索引,这里的索引是一个动词,将在后期讲解

类型 elasticsearch表示
null 没有对应的表示
true或false boolean
小数 float
整数 long
日期 date
字符串 text

需要注意的是, 在之前的版本中可能字符串用string表示,但是6.2.3不行,还有上边说道的index,之前可用analyzed或not_analyzed表示,但是6.2.3版本不可以

2.更新索引

ES 学习之路-索引(index)的简单管理
这是错误更新settings的方法,原因右边json中已经描述得很清楚,不能更改索引(index)的分片数量
ES 学习之路-索引(index)的简单管理
这是正常更改副本数量的样例
ES 学习之路-索引(index)的简单管理
结合上边添加索引的图片查看, 这是更新索引中映射,将原来title的类型由text调整为long,index调整为true
ES 学习之路-索引(index)的简单管理
这是添加新的属性

3.索引删除

ES 学习之路-索引(index)的简单管理

4.添加type

ES 学习之路-索引(index)的简单管理
添加一个新的type到索引中

5.查看索引信息

ES 学习之路-索引(index)的简单管理
查询索引的信息

还有很多有关索引的信息, 后续持续补充。。。