Loading

ElasticSearch增删改查操作

ElasticSearch增删改查操作

官方文档: Elasticsearch Reference| Elastic

Rest风格

method url地址 描述
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 查询所有数据

ES的字段类型:

  • 字符串类型:text [会被分词器解析]、 keyword [不会被分词器解析]
  • 数值类型:long, integer, short, byte, double, float, half_float, scaled_float
  • 日期类型:date
  • 布尔值类型:boolean
  • 二进制类型:binary

CRUD操作

官网: Document APIs

创建索引库

创建索引并指定字段类型

PUT /emp
{
  "mappings": {
    "properties": {
      "name":{"type": "text"},
      "age":{"type": "integer"},
      "gender":{"type": "keyword"},
      "email":{"type": "text"}
    }
  }
}

官网: PUT Mapping API

添加数据

单条数据

PUT /<target>/_doc/<_id>

PUT /emp/_doc/1
{
  "name":"tom",
  "age":"45",
  "gender":"M",
  "email":"tom@gmail.com"
}

批量数据

PUT /_bulk

PUT /_bulk
{"index":{"_index" : "emp","_id":"2"}}
{"name":"hattie","age":36,"gender":"M","email":"hattiebond@netagy.com"}
{"index":{"_index" : "emp","_id":"3"}}
{"name":"nanette","age":28,"gender":"F","email":"nanettebates@quility.com"}
{"index":{"_index" : "emp","_id":"4"}}
{"name":"dale","age":42,"gender":"M","email":"daleadams@boink.com"}
{"index":{"_index" : "emp","_id":"5"}}
{"name":"elinor","age":36,"gender":"M","email":"elinorratliff@scentric.com"}
{"index":{"_index" : "emp","_id":"6"}}
{"name":"virginia","age":29,"gender":"F","email":"virginiaayala@filodyne.com"}

通过POST /_sql?format=txt查看插入的数据

POST /_sql?format=txt
{
  "query": "SELECT name,age,gender FROM emp"
}

更新数据

# 直接覆盖
PUT /emp/_doc/3
{
  "name":"jerry",
  "age":"5",
  "gender":"M",
  "email":"jerry@gmail.com"
}
# 修改指定字段
POST /emp/_doc/3/_update
{ 
  "doc":{
    "age":"8"
  }
}

删除数据

  1. 根据id删除数据DELETE /<index>/_doc/<_id>

    # 删除id为5的用户
    DELETE /emp/_doc/5
    
  2. 条件删除数据POST /<target>/_delete_by_query

    # 删除名为dale的用户
    POST /emp/_delete_by_query
    {
       "query": {
        "match": {
          "name": "dale"
        }
      }
    }
    

查询数据

官网: Query and filter context

# 查询所有
GET /emp/_doc/_search

# 根据id查询
GET /emp/_doc/1

# 条件查询
GET /emp/_doc/_search
{
  "query":{
    "match":{
      "name":"tom"
    }
  }
}
# 显示指定字段的条件查询
GET /emp/_doc/_search
{
  "query":{
    "match":{
      "name":"tom"
    }
  },
  "_source":["name","age"]
}
posted @ 2022-01-19 00:22  飞火流鸢  阅读(171)  评论(0编辑  收藏  举报