在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.创建索引
解说:
地址中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.更新索引
这是错误更新settings的方法,原因右边json中已经描述得很清楚,不能更改索引(index)的分片数量
这是正常更改副本数量的样例
结合上边添加索引的图片查看, 这是更新索引中映射,将原来title的类型由text调整为long,index调整为true
这是添加新的属性
3.索引删除
4.添加type
添加一个新的type到索引中
5.查看索引信息
查询索引的信息
还有很多有关索引的信息, 后续持续补充。。。