Elasticsearch-更新文档
文档,就是数据的意思,从后面开始就用Elasticsearch的专业术语了。 更新操作,除了post/put请求,还可以以下操作更新。
POST customer/external/1/_update
{
"doc":{
"name":"new Name"
}
}
1
2
3
4
5
6
2
3
4
5
6
或者之前的POST请求
POST customer/external/1
{
"name":"new Name2"
}
1
2
3
4
2
3
4
或者之前的PUT请求customer/external/1
# 请求例子
- 请求路径 POST
http://192.168.56.10:9200/customer/external/1/_update
1
- 请求体
{
"doc":{
"name":"new Name"
}
}
1
2
3
4
5
2
3
4
5
- 返回
{
"_index": "customer",
"_type": "external",
"_id": "1",
"_version": 5,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 10,
"_primary_term": 1
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
当我不修改任何数据,再次发送请求时,返回
{
"_index": "customer",
"_type": "external",
"_id": "1",
"_version": 5,
"result": "noop",
"_shards": {
"total": 0,
"successful": 0,
"failed": 0
},
"_seq_no": 10,
"_primary_term": 1
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
发现result
变成了noop
,其他数据未发生变化。
也就是post请求的_update会对比原来的数据,如果发生变化才会操作,如果没有发生变化就不会做任何操作。
以前的post/put请求,就算数据不发生变化,也会触发更新操作,序列号_seq_no
和版本_version
都会发生变化。
帮我改善此页面 (opens new window)
上次更新: 2020/12/17, 08:38:35