1.概述
介绍EalsticSearch(基于版本7操作)基本的概念,在kibana的dev tool下进行操作。其中几个重要的概念如下:
- 分片(shard)
- 副本(replica)
- 索引(index)
- 映射(mappering)
分片:ES通过水平拆分的方式将一个索引上的数据拆分出来分配到不同的数据块上,拆分出来的数据库块称之为一个分片。
副本:副本就是对分片的Copy,每个主分片都有一个或多个副本分片,当主分片异常时,副本可以提供数据的查询等操作。主分片和对应的副本分片是不会在同一个节点上的,所以副本分片数的最大值是 n -1(其中n为节点数)。
索引:类似定义一个数据库,确定分片和副本的数量等参数。
映射:映射是用于定义ES对索引中字段的存储类型、分词方式和是否存储等信息,就像数据库,中的 schema ,描述了文档可能具有的字段或属性、每个字段的数据类型。ES7的资料中很多使用了动态映射,因此可以不用定义,但是进阶需要掌握。
2.操作
# 定义索引
PUT shard-index
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 2
}
}
# 新增数据
POST shard-index/_doc/1
{
"name": "WeiLiang Xu",
"Blogs": "abcops.cn",
"Is male": true,
"age": 25
}
# 查询数据-根据ID
GET shard-index/_doc/1
# 删除数据或者索引
DELETE shard-index
DELETE shard-index/_doc/1
# 模糊查询(主要应用场景)
GET shard-index/_search
{
"from": 0,
"size": 20,
"query": {
"match": {
"name": "Zou"
}
}
}
3.总结
基本操作都比较简单,容易上手。进阶可以考虑学习如下知识点:
- 动态映射
- 集群增加分片
- 分词
4.参考
- https://www.jianshu.com/p/2bb3638d61e6 这位老师介绍的es内容很详细
- https://www.51cto.com/article/714886.html 对ES介绍很详细了,入门必看