ElasticSearch增删改查操作
ElasticSearch增删改查操作
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"
  }
}

删除数据
- 
根据id删除数据
DELETE /<index>/_doc/<_id># 删除id为5的用户 DELETE /emp/_doc/5 - 
条件删除数据
POST /<target>/_delete_by_query# 删除名为dale的用户 POST /emp/_delete_by_query { "query": { "match": { "name": "dale" } } } 
查询数据
# 查询所有
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"]
}

                
            
        
浙公网安备 33010602011771号