- 1、创建文档
- 2、更新文档
- 3、删除文档
- 4、查看文档
POST http://127.0.0.1:9200/students/_doc/1001
指定Id的情况下,既可以用POST请求也可以用PUT请求,在请求的Body里面添加JSON文档:
{
"userId": 1001,
"userName": "Nancy",
"age": 24,
"hobby": "游泳,羽毛球,足球"
}
返回结果为:
{
"_index": "students",
"_type": "_doc",
"_id": "1001",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
不指定Id的情况下,使用PUT请求时,会报以下错误:
{
"error": "Incorrect HTTP method for uri [/students/_doc] and method [PUT], allowed: [POST]",
"status": 405
}
2、更新文档
更新文档有两种方式,一种是全量所有字段进行覆盖更新,另一种是指定需要修改的字段进行更新:
- 全量所有字段覆盖更新
PUT http://127.0.0.1:9200/students/_doc/1001
将Nancy的兴趣爱好hobby字段,删掉足球的爱好,在请求的Body里面添加JSON文档:
{
"userId": 1001,
"userName": "Nancy",
"age": 24,
"hobby": "游泳,羽毛球"
}
返回结果为:
{
"_index": "students",
"_type": "_doc",
"_id": "1001",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
- 增量只更新需要修改的字段
POST http://127.0.0.1:9200/students/_update/1001
请求的Body里的内容为:
{
"doc": {
"hobby": "游泳,羽毛球",
"age": 25
}
}
_upadte表示请求的操作为更新,后面跟的为文档的id,即可完成对应的字段更新。
3、删除文档es删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)
- 不带条件,根据id来删除
DELETE http://127.0.0.1:9200/students/_doc/1001
返回结果为:
{
"_index": "students",
"_type": "_doc",
"_id": "1001",
"_version": 6,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 5,
"_primary_term": 1
}
若对一个不存在的文档进行删除,在返回结果的result字段会显示not_found,表示文档未查找到。
{
"_index": "students",
"_type": "_doc",
"_id": "1008",
"_version": 1,
"result": "not_found",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 11,
"_primary_term": 2
}
- 带条件,根据条件来删除
POST http://127.0.0.1:9200/students/_delete_by_query
请求体:
{
"query": {
"match": {
"age": 24
}
}
}
返回结果:
{
"took": 180,
"timed_out": false,
"total": 2,
"deleted": 2,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"failures": []
}
4、查看文档
查看文档时候,需要指明文档的唯一表示,类似于数据库的唯一主键。
GET http://127.0.0.1:9200/students/_doc/1002
返回结果:
{
"_index": "students",
"_type": "_doc",
"_id": "1002",
"_version": 1,
"_seq_no": 10,
"_primary_term": 2,
"found": true,
"_source": {
"userId": 1002,
"userName": "Tom",
"age": 24,
"hobby": "游泳,足球"
}
}
查看一个已被删除或者不存在的文档时,在返回结果的found字段会用false表示未找到。
{
"_index": "students",
"_type": "_doc",
"_id": "1008",
"found": false
}
查询一个索引下的所有文档:
GET http://127.0.0.1:9200/students/_search
返回结果:
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "students",
"_type": "_doc",
"_id": "1002",
"_score": 1.0,
"_source": {
"userId": 1002,
"userName": "Tom",
"age": 24,
"hobby": "游泳,足球"
}
}
]
}
}



