REST风格操作ES

REST风格

一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制

🐤基本REST命令说明

methodName URLPath Desc
PUT localhost:9200/索引名称/类型名称/文档id 创建文档(指定文档id)
POST localhost:9200/索引名称/类型名称 创建文档(随机文档id)
POST localhost:9200/索引名称/类型名称/文档id/_update 修改文档
DELETE localhost:9200/索引名称/类型名称/文档id 删除文档
GET localhost:9200/索引名称/类型名称/文档id 查询文档通过文档id
POST localhost:9200/索引名称/类型名称/_search 查询所有数据

创建一个索引

PUT /索引名/类型名/文档id
{请求体}
PUT /test1/type1/1
{
  "name": "BNTang",
  "age": 23 
}

完成了自动增加索引,数据也成功的添加了,初期可以把它当作数据库一样的去学习

那么name这个字段用不用指定数据类型呢,毕竟我们关系型数据库是需要指定数据类型的

  • 字符串类型

text、keyword

  • 数值类型

long、integer、short、byte、double、float、half_float、scaled_float

  • 日期类型

date

  • 布尔值类型

boolean

  • 二进制类型

binary

等...

参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html

指定字段的类型

PUT /test2
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "long"
      },
      "birthday": {
        "type": "date"
      }
    }
  }
}

🐬获得这个规则,可以通过GET请求获取具体的信息

GET /test2

🐸查看默认信息

PUT /test3/_doc/1
{
  "name": "BNTang666",
  "age": 24,
  "birth": "1997-05-25"
}
GET /test3

如果自己创建文档没有指定数据类型,那么es就会给我们默认配置字段数据类型,另外,可以通过GET _cat/可获得es当前更多信息

修改提交还是使用PUT即可,然后覆盖原有的,这里会介绍两种方式

曾经

PUT /test3/_doc/1
{
  "name": "BNTang",
  "age": 24,
  "birth": "1997-05-25"
}

现在的方式

POST /test3/_doc/1/_update
{
  "doc": {
    "name": "JonathanLee"
  }
}

删除索引

通过DELETE命令实现删除、根据你的请求来判断是删除索引还是删除文档记录

使用RESTFul风格是ES推荐的

删除文档

DELETE /test1

删除文档中的记录

DELETE /test3/_doc/1

posted @ 2020-08-17 10:58  BNTang  阅读(250)  评论(0编辑  收藏  举报