暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ES基本操作

宝哥大数据 2021-09-26
1110

基于ES-7.10.2

一、ES的结构

1.1、索引 Index

索引 Index ES会对索引分片, 还会对索引进行备份(副本)备份分片默认不会帮助检索数据,当ES检索压力特别大的时候,备份分片才会帮忙检索数据

在这里插入图片描述

1.2、类型 Type(es-7.x已经废弃)

类似于Mysql中的Table es7.x中只有一个_doc

1.3、文档(Document)

一个Type下可以有多个Doc,类似于Mysql表中的多行数据。

1.4、属性 Field

类似于Mysql表中的一行数据的多个列

在这里插入图片描述

二、操作ES的Restful语法

2.1、GET 请求

 	http://ip:port/index 	查询索引信息
http://ip:port/index/type/doc_id 查询指定文档信息

2.2、POST 请求

	http://ip:port/index/type/_search 查询文档,可以再请求体中添加json 字符串来代表查询条件
http://ip:port/index/type/doc_id/_update 修改文档,可以再请求体中添加json 字符串来代表查询条件

2.3、PUT 请求

 	http://ip:port/index 	创建一个索引,需要在请求体中指定索引信息,类型,结构
http://ip:port/index/type/_mappings 创建索引时,指定索引文档存储的属性信息

2.4、DELETE 请求

 	http://ip:port/index 	删除索引
http://ip:port/index/type/doc_id 删除指定文档

2.5、在Kinaban 执行命令

Management -> Dev Tools

三、Index 操作

3.1、创建索引

PUT person
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
}
}

3.2、查询索引

GET person

在这里插入图片描述

3.3、删除索引

DELETE person

四、Field 操作

4.1、数据类型 【参考官网】

4.2、创建索引并指定数据结构

PUT book 
{
"settings": { # 指定分片及副本
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": { # 此处不需要设置类型Type,es7.x已经废弃了Type
"properties": { # 设置 Field
"name": { #设置属性名
"type": "text", #类型
"analyzer": "ik_max_word", # 分词器
"index": true, # 指定当前Field是否作为查询条件
"store": false # 是否需要额外存储
},
"author": {
"type": "keyword"
},
"count": {
"type": "long"
},
"onSale": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" # 时间类型的格式化方式
},
"desc": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}

五、文档(Doc)操作

5.1、添加文档, 必须指定doc_id

es7.x中只有一个 类型(Type),即默认的_doc

PUT book/_doc/1 
{
"name": "西游记",
"author": "吴承恩",
"count": "100000",
"onSale": "1970-01-01",
"desc": "由明代小说家吴承恩所创作的中国古代第一部浪漫主义的长篇神魔小说"
}

5.2、修改

5.2.1、覆盖式修改

# 修改
PUT book/_doc/1
{
"name": "西游记"
}

# 查询文档, 发现只有name字段
GET book/_doc/1
{
"_index" : "book",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "西游记"
}
}



5.2.2、修改文档,基于doc方式

POST book/_doc/1/_update
{
"doc": {
"name": "西游记2"
}
}

# 推荐这种
POST /book/_update/1
{
"doc": {
"name": "西游记3"
}
}

5.3、删除文档

DELETE /book/_doc/1


文章转载自宝哥大数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论