ElasticSearch(三)【索引、映射、文档】

三、核心概念


上一篇文章ElasticSearch - Kibana

索引

一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个商品数据的索引,一个订单数据的索引,还有一个用户数据的索引。 一个索引由一个名字来标识必须全部是小写字母的),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字

映射

映射是定义一个文档和它所包含的字段如何被存储和索引的过程。在默认配置下,ES可以根据插入的数据自动地创建mapping,也可以手动创建mapping。mapping中主要包括字段名字段类型等

文档

文档是索引中存储的一条条数据一条文档是一个可被索引的最小单元。ES中的文档采用了轻量级的JSON格式数据来表示

索引->表(product表、user表…) 映射->表结构(id、username、password…) 文档->数据行({“id”:1,“username”:“zhangsan”,“passowrd”:“123456”}…)

3.1 索引的基本操作

索引

创建索引

# 1.创建索引
PUT /索引名 ===> PUT /products
# 【注意】
- ES中索引健康状态 red(表示索引不可用)、yellow(表示索引可用、但存在风险)、green(健康)
- 默认ES在创建索引时,会为索引创建1个备份索引和primary索引

# 2.创建索引,进行索引分配配置
PUT /order
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查询所有索引信息

在这里插入图片描述

删除索引

# 删除索引
DELETE /product

在这里插入图片描述

3.2 映射的基本操作

ES常见的基本类型

  • 字符串类型:keyword、text
  • 数字类型:integer、long
  • 小数类型:float、double
  • 布尔类型:boolean
  • 日期类型:date

创建映射

# 创建商品索引,指定mapping {id,title,price,create_time,description}
PUT /product
{
  "settings": {
    "number_of_replicas": 0,
    "number_of_shards": 1
  },
  "mappings": {
    "properties": {
      "id": {
        "type": "integer"
      },
      "title": {
        "type": "keyword"
      },
      "price": {
        "type": "double"
      },
      "create_time": {
        "type": "date"
      },
      "description": {
        "type": "text"
      }
    }
  }
}

在这里插入图片描述

在这里插入图片描述

查询索引的映射信息

GET /[索引名]/_mapping	===> GET /product/_mapping

在这里插入图片描述

注意映射信息是不允许被删除和修改的

3.3 文档的基本操作

文档的添加

# 添加文档操作,指定文档id
POST /product/_doc/2
{
  "id": 2,
  "title": "blog",
  "price": 12.6,
  "create_time": "2022-09-12",
  "description": "vinjcent's blog"
}

# 添加文档操作,默认使用uuid
POST /product/_doc/
{
  "id": 2,
  "title": "blog",
  "price": 12.6,
  "create_time": "2022-09-12",
  "description": "vinjcent's blog"
}

在这里插入图片描述

在这里插入图片描述

文档的修改

# 不正确的更新操作
POST /product/_doc/1
{
  "id": 1,
  "title": "blog",
  "price": 12.6,
  "create_time": "2022-09-12",
  "description": "vinjcent's blog"
}

# 正确的操作.【注意】会删除原有的数据后,再重新添加
PUT /product/_doc/1
{
  "id": 1,
  "title": "blog",
  "price": 12.6,
  "create_time": "2022-09-12",
  "description": "vinjcent's blog"
}

在这里插入图片描述

在这里插入图片描述

指定字段进行修改

# 模板
POST /[索引]/_doc/[文档id]/_update
{
  "doc": {
    "属性": "修改内容",
     ...
  }
}
# 样例
POST /product/_doc/1/_update
{
  "doc": {
    "price": 1.7
  }
}

在这里插入图片描述

在这里插入图片描述

文档的查询

GET /[索引]/_doc/[文档id]	===>	GET /product/_doc/1

删除文档

DELETE /[索引]/_doc/[文档id]	===>	DELETE /product/_doc/QHnFMIMB7hXKWzAioRlM

3.4 文档的批量操作

文档批量录入

# 文档的批量操作
POST /product/_doc/_bulk
{"index": {"_id": 2}}
  { "id" : 2, "title" : "Totoro", "price" : 1.8, "create_time" : "2022-09-12", "description" : "Totoro's blog" }
{"index": {"_id": 3}}
  { "id" : 3, "title" : "Maria", "price" : 12.0, "create_time" : "2022-09-12", "description" : "Maria's blog" }

在这里插入图片描述

录入成功

在这里插入图片描述

批量增、删、改

# 文档的批量操作 添加、更新、删除
POST /product/_doc/_bulk
{"index": {"_id": 4}}
  { "id" : 4, "title" : "Villin", "price" : 10.7, "create_time" : "2022-09-12", "description" : "Villin's blog" }
{"update": {"_id": 3}}
  {"doc": {"title": "Maria01", "description": "Maria01's blog"}}
{"delete": {"_id": 2}}

在这里插入图片描述

注意批量操作时,不会因为一个操作的失败而全部失败(不保证原子性),而是继续执行后续操作,最后返回按照执行的状态返回

下一篇文章ElasticSearch - 高级查询

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naijia_OvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值