Elasticseach中间件详细教程—基础篇

Elasticseach中间件详细教程—进阶篇

Elasticseach中间件详细教程—高级篇

Elasticseach中间件详细教程—实战篇

前言

elasticsearch:7.17.21

JDK:1.8

springboot:2.7.4

索引库(mapping)

  • 对字段属性的约束,相当于MySQL建库建表

  • type(基本)

    • 字符串
      • text (可以被分词,具体规则根据analyzer划分)
      • keyword (不会被分词)
    • 数值
      • long
      • integer
      • short
      • byte
      • double
      • float
    • 布尔
      • boolean
    • 日期
      • date
    • 对象
      • object
  • index:是否创建索引,默认为true。(搜索时能被检索)

  • analyzer:分词器

  • properties:字段的子字段

创建

  • 实体类
{
	"name":{
		"firstName":"M",
		"lastName":"redust"
	},
	"age":20,
	"weight":54.4
	"isMarried":false,
	"introduction":"不会编程的小白",
	"email":"123@qq.com",
	"score":[44.1, 44.2, 44.3, 44.4],
}
  • 创建对应的索引约束
    • aliases别名作为标识,可理解为table_name,一个索引可以有多个别名,而且一个别名只能指向一个索引
    • 注意:搜索库添加后不能对此修改,但可以新增PUT /user/_mapping
    • 建立索引基本是根据数据库的表字段去做响应的mapping
PUT /user
{
  "aliases": {
    "user_v1": {}
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "keyword"
          },
          "lastName": {
            "type": "keyword"
          }
        }
      },
      "email": {
        "type": "keyword",
        "index": false
      },
      "introduction": {
        "type": "text",
        "analyzer": "ik_smart"
      }
    }
  }
}

删除

DELETE /user

修改

PUT /user/_mapping
{
  "properties":{
    "age":{
      "type": "integer"
    }
  }
}

查询

GET /user

文档

  • 对索引添加数据,相当于插入SQL数据

  • 语法:方法 /索引/_doc/id?

  • 如果不指定id则es使用默认id生成策略

  • 每次操作返回结果的解析

{
  "_index" : "user", # 索引
  "_type" : "_doc", # 类型
  "_id" : "1", #id标识
  "_version" : 2, # 版本控制,每做一次数据改动就会自增1
  "result" : "deleted", # 操作方法结果类型
  "_shards" : {
    "total" : 2,
    "successful" : 1, # 方法是否成功
    "failed" : 0 # 方法是否失败
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}

新增

POST /user/_doc/1
{
	"name":{
		"firstName":"M",
		"lastName":"redust"
	},
	"email":"123@qq.com",
	"introduction":"不会编程的小白"
}

删除

DELETE /user/_doc/1

修改

  • 方式一:全量修改
    • 如果存在,先删除旧文档,再去做新增操作
    • 如果不存在,新增操作
PUT /user/_doc/1
{
	"name":{
		"firstName":"M",
		"lastName":"redust"
	},
	"email":"321@qq.com",
	"introduction":"不会编程的红尘"
}
  • 方式二:增量修改
    • 语法:PUT /索引/_update/id
    • 修改指定字段
POST /user/_doc/1
{
	"doc":{
		"email":"666@qq.com"
	}
}

查询

GET /user/_doc/1

Elasticseach中间件详细教程—进阶篇

Elasticseach中间件详细教程—高级篇

Elasticseach中间件详细教程—实战篇

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mredust

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

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

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

打赏作者

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

抵扣说明:

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

余额充值