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"]
}