基于ES-7.10.2
文章目录
一、ES的结构
1.1、索引 Index
- 基于ES-7.10.2
- 一、ES的结构
- 1.1、索引 Index
- 1.2、类型 Type(es-7.x已经废弃)
- 1.3、文档(Document)
- 1.4、属性 Field
- 二、操作ES的Restful语法
- 2.1、GET 请求
- 2.2、POST 请求
- 2.3、PUT 请求
- 2.4、DELETE 请求
- 2.5、在Kinaban 执行命令
- 三、Index 操作
- 3.1、创建索引
- 3.2、查询索引
- 3.3、删除索引
- 四、Field 操作
- 4.1、数据类型 [【参考官网】](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/mapping-types.html#mapping-types)
- 4.2、创建索引并指定数据结构
- 五、文档(Doc)操作
- 5.1、添加文档, 必须指定doc_id
- 5.2、修改
- 5.2.1、覆盖式修改
- 5.2.2、修改文档,基于doc方式
- 5.3、删除文档
索引 Index ES会对索引分片, 还会对索引进行备份(副本) 备份分片默认不会帮助检索数据,当ES检索压力特别大的时候,备份分片才会帮忙检索数据
类似于Mysql中的Table es7.x中只有一个_doc
一个Type下可以有多个Doc,类似于Mysql表中的多行数据。
类似于Mysql表中的一行数据的多个列
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
PUT /person
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
}
}
3.2、查询索引
GET /person
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